-rw-r--r-- 49672 lib25519-20241004/crypto_hashblocks/sha512/m3/inner.inc raw
typedef unsigned long long uint64; #define SHR(x,c) ((x) >> (c)) #define ROTR(x,c) (((x) >> (c)) | ((x) << (64 - (c)))) #define sigma0(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHR(x,7)) #define sigma1(x) (ROTR(x,19) ^ ROTR(x,61) ^ SHR(x,6)) # #define flip(x) ROTR(x,32) #define Ch(x,y,z) (z ^ (x & (y ^ z))) #define Maj(x,y,z) ((x & (y ^ z)) ^ (y & z)) #define Sigma0(x) (ROTR(x,28) ^ ROTR(x,34) ^ ROTR(x,39)) #define Sigma1(x) (ROTR(x,14) ^ ROTR(x,18) ^ ROTR(x,41)) #define reverse(x) __builtin_bswap64(x) #define load64(x) *(uint64 *) (x) #define store64(x,y) *(uint64 *) (x) = y #define eq(x,y) (x == y) #define ge(x,y) (x >= y) // qhasm: ptr input_0 // qhasm: ptr input_1 // qhasm: int32 input_2 // qhasm: ptr input_3 // qhasm: spill64 r0_spill // qhasm: spill64 r1_spill // qhasm: spill64 r2_spill // qhasm: spill64 r3_spill // qhasm: spill64 r4_spill // qhasm: spill64 r5_spill // qhasm: spill64 r6_spill // qhasm: spill64 r7_spill // qhasm: spill64 w0_spill // qhasm: spill64 w1_spill // qhasm: spill64 w2_spill // qhasm: spill64 w3_spill // qhasm: spill64 w4_spill // qhasm: spill64 w5_spill // qhasm: spill64 w6_spill // qhasm: spill64 w7_spill // qhasm: stack64 w8_stack // qhasm: stack64 state0 // qhasm: stack64 state1 // qhasm: stack64 state2 // qhasm: stack64 state3 // qhasm: stack64 state4 // qhasm: stack64 state5 // qhasm: stack64 state6 // qhasm: stack64 state7 // qhasm: int64 r0 // qhasm: int64 r1 // qhasm: int64 r2 // qhasm: int64 r3 // qhasm: int64 r4 // qhasm: int64 r5 // qhasm: int64 r6 // qhasm: int64 r7 // qhasm: int64 w0 // qhasm: int64 w1 // qhasm: int64 w2 // qhasm: int64 w3 // qhasm: int64 w4 // qhasm: int64 w5 // qhasm: int64 w6 // qhasm: int64 w7 // qhasm: stack64 w0_next // qhasm: stack64 w1_next // qhasm: stack64 w2_next // qhasm: stack64 w3_next // qhasm: stack64 w4_next // qhasm: stack64 w5_next // qhasm: stack64 w6_next // qhasm: stack64 w7_next // qhasm: int64 w8 // qhasm: int64 w9 // qhasm: int64 w10 // qhasm: int64 w11 // qhasm: int64 w12 // qhasm: int64 w13 // qhasm: int64 w14 // qhasm: int64 w15 // qhasm: int32 i // qhasm: ptr statebytes // qhasm: ptr in // qhasm: int32 inlen // qhasm: ptr constants // qhasm: stackptr in_stack // qhasm: stackptr statebytes_stack // qhasm: stack32 inlen_stack // qhasm: stack32 i_stack // qhasm: pushenter inner int inner(unsigned char *p0,unsigned char *p1,unsigned int i2,unsigned char *p3) { int equal; int unsignedge; unsigned char *p2; unsigned int i0,i1,i3,i4,i5,i6,i7,i8,i9; uint64 u0,u1,u2,u3,u4,u5,u6,u7; uint64 m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16,m17,m18; unsigned char *n0,*n1,*n2; unsigned int o0,o1,o2; uint64 d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16; // qhasm: statebytes_stack = input_0 // asm 1: >statebytes_stack=stackptr#1 = <input_0=ptr#1; // asm 2: >statebytes_stack=n0 = <input_0=p0; n0 = p0; // qhasm: in_stack = input_1 // asm 1: >in_stack=stackptr#2 = <input_1=ptr#2; // asm 2: >in_stack=n1 = <input_1=p1; n1 = p1; // qhasm: inlen = input_2 - 128 // asm 1: >inlen=int32#1 = <input_2=int32#3 - 128; // asm 2: >inlen=i0 = <input_2=i2 - 128; i0 = i2 - 128; // qhasm: inlen_stack = inlen // asm 1: >inlen_stack=stack32#1 = <inlen=int32#1; // asm 2: >inlen_stack=o0 = <inlen=i0; o0 = i0; // qhasm: r0 = flip mem64[input_0] // asm 1: >r0=int64#1 = flip(load64(<input_0=ptr#1)); // asm 2: >r0=u0 = flip(load64(<input_0=p0)); u0 = flip(load64(p0)); // qhasm: r1 = flip mem64[input_0+8] // asm 1: >r1=int64#2 = flip(load64(<input_0=ptr#1+8)); // asm 2: >r1=u1 = flip(load64(<input_0=p0+8)); u1 = flip(load64(p0+8)); // qhasm: r2 = flip mem64[input_0+16] // asm 1: >r2=int64#3 = flip(load64(<input_0=ptr#1+16)); // asm 2: >r2=u2 = flip(load64(<input_0=p0+16)); u2 = flip(load64(p0+16)); // qhasm: r3 = flip mem64[input_0+24] // asm 1: >r3=int64#4 = flip(load64(<input_0=ptr#1+24)); // asm 2: >r3=u3 = flip(load64(<input_0=p0+24)); u3 = flip(load64(p0+24)); // qhasm: r0 = reverse flip r0 // asm 1: >r0=int64#1 = reverse(flip(<r0=int64#1)); // asm 2: >r0=u0 = reverse(flip(<r0=u0)); u0 = reverse(flip(u0)); // qhasm: r1 = reverse flip r1 // asm 1: >r1=int64#2 = reverse(flip(<r1=int64#2)); // asm 2: >r1=u1 = reverse(flip(<r1=u1)); u1 = reverse(flip(u1)); // qhasm: r2 = reverse flip r2 // asm 1: >r2=int64#3 = reverse(flip(<r2=int64#3)); // asm 2: >r2=u2 = reverse(flip(<r2=u2)); u2 = reverse(flip(u2)); // qhasm: r3 = reverse flip r3 // asm 1: >r3=int64#4 = reverse(flip(<r3=int64#4)); // asm 2: >r3=u3 = reverse(flip(<r3=u3)); u3 = reverse(flip(u3)); // qhasm: state0 = r0 // asm 1: >state0=stack64#1 = <r0=int64#1; // asm 2: >state0=m0 = <r0=u0; m0 = u0; // qhasm: state1 = r1 // asm 1: >state1=stack64#2 = <r1=int64#2; // asm 2: >state1=m1 = <r1=u1; m1 = u1; // qhasm: state2 = r2 // asm 1: >state2=stack64#3 = <r2=int64#3; // asm 2: >state2=m2 = <r2=u2; m2 = u2; // qhasm: state3 = r3 // asm 1: >state3=stack64#4 = <r3=int64#4; // asm 2: >state3=m3 = <r3=u3; m3 = u3; // qhasm: r0_spill = r0 // asm 1: >r0_spill=spill64#1 = <r0=int64#1; // asm 2: >r0_spill=d0 = <r0=u0; d0 = u0; // qhasm: r1_spill = r1 // asm 1: >r1_spill=spill64#2 = <r1=int64#2; // asm 2: >r1_spill=d1 = <r1=u1; d1 = u1; // qhasm: r2_spill = r2 // asm 1: >r2_spill=spill64#3 = <r2=int64#3; // asm 2: >r2_spill=d2 = <r2=u2; d2 = u2; // qhasm: r3_spill = r3 // asm 1: >r3_spill=spill64#4 = <r3=int64#4; // asm 2: >r3_spill=d3 = <r3=u3; d3 = u3; // qhasm: r4 = flip mem64[input_0+32] // asm 1: >r4=int64#1 = flip(load64(<input_0=ptr#1+32)); // asm 2: >r4=u0 = flip(load64(<input_0=p0+32)); u0 = flip(load64(p0+32)); // qhasm: r5 = flip mem64[input_0+40] // asm 1: >r5=int64#2 = flip(load64(<input_0=ptr#1+40)); // asm 2: >r5=u1 = flip(load64(<input_0=p0+40)); u1 = flip(load64(p0+40)); // qhasm: r6 = flip mem64[input_0+48] // asm 1: >r6=int64#3 = flip(load64(<input_0=ptr#1+48)); // asm 2: >r6=u2 = flip(load64(<input_0=p0+48)); u2 = flip(load64(p0+48)); // qhasm: r7 = flip mem64[input_0+56] // asm 1: >r7=int64#4 = flip(load64(<input_0=ptr#1+56)); // asm 2: >r7=u3 = flip(load64(<input_0=p0+56)); u3 = flip(load64(p0+56)); // qhasm: r4 = reverse flip r4 // asm 1: >r4=int64#1 = reverse(flip(<r4=int64#1)); // asm 2: >r4=u0 = reverse(flip(<r4=u0)); u0 = reverse(flip(u0)); // qhasm: r5 = reverse flip r5 // asm 1: >r5=int64#2 = reverse(flip(<r5=int64#2)); // asm 2: >r5=u1 = reverse(flip(<r5=u1)); u1 = reverse(flip(u1)); // qhasm: r6 = reverse flip r6 // asm 1: >r6=int64#3 = reverse(flip(<r6=int64#3)); // asm 2: >r6=u2 = reverse(flip(<r6=u2)); u2 = reverse(flip(u2)); // qhasm: r7 = reverse flip r7 // asm 1: >r7=int64#4 = reverse(flip(<r7=int64#4)); // asm 2: >r7=u3 = reverse(flip(<r7=u3)); u3 = reverse(flip(u3)); // qhasm: state4 = r4 // asm 1: >state4=stack64#5 = <r4=int64#1; // asm 2: >state4=m4 = <r4=u0; m4 = u0; // qhasm: state5 = r5 // asm 1: >state5=stack64#6 = <r5=int64#2; // asm 2: >state5=m5 = <r5=u1; m5 = u1; // qhasm: state6 = r6 // asm 1: >state6=stack64#7 = <r6=int64#3; // asm 2: >state6=m6 = <r6=u2; m6 = u2; // qhasm: state7 = r7 // asm 1: >state7=stack64#8 = <r7=int64#4; // asm 2: >state7=m7 = <r7=u3; m7 = u3; // qhasm: r4_spill = r4 // asm 1: >r4_spill=spill64#5 = <r4=int64#1; // asm 2: >r4_spill=d4 = <r4=u0; d4 = u0; // qhasm: r5_spill = r5 // asm 1: >r5_spill=spill64#6 = <r5=int64#2; // asm 2: >r5_spill=d5 = <r5=u1; d5 = u1; // qhasm: r6_spill = r6 // asm 1: >r6_spill=spill64#7 = <r6=int64#3; // asm 2: >r6_spill=d6 = <r6=u2; d6 = u2; // qhasm: r7_spill = r7 // asm 1: >r7_spill=spill64#8 = <r7=int64#4; // asm 2: >r7_spill=d7 = <r7=u3; d7 = u3; // qhasm: constants = input_3 // asm 1: >constants=ptr#1 = <input_3=ptr#4; // asm 2: >constants=p0 = <input_3=p3; p0 = p3; // qhasm: mainloop: label_mainloop: // qhasm: in = in_stack // asm 1: >in=ptr#2 = <in_stack=stackptr#2; // asm 2: >in=p1 = <in_stack=n1; p1 = n1; // qhasm: w0 = flip mem64[in]; in += 8 // asm 1: >w0=int64#1 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w0=u0 = flip(load64(<in=p1)); <in=p1 += 8; u0 = flip(load64(p1)); p1 += 8; // qhasm: w1 = flip mem64[in]; in += 8 // asm 1: >w1=int64#2 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w1=u1 = flip(load64(<in=p1)); <in=p1 += 8; u1 = flip(load64(p1)); p1 += 8; // qhasm: w2 = flip mem64[in]; in += 8 // asm 1: >w2=int64#3 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w2=u2 = flip(load64(<in=p1)); <in=p1 += 8; u2 = flip(load64(p1)); p1 += 8; // qhasm: w3 = flip mem64[in]; in += 8 // asm 1: >w3=int64#4 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w3=u3 = flip(load64(<in=p1)); <in=p1 += 8; u3 = flip(load64(p1)); p1 += 8; // qhasm: w0 = reverse flip w0 // asm 1: >w0=int64#1 = reverse(flip(<w0=int64#1)); // asm 2: >w0=u0 = reverse(flip(<w0=u0)); u0 = reverse(flip(u0)); // qhasm: w1 = reverse flip w1 // asm 1: >w1=int64#2 = reverse(flip(<w1=int64#2)); // asm 2: >w1=u1 = reverse(flip(<w1=u1)); u1 = reverse(flip(u1)); // qhasm: w2 = reverse flip w2 // asm 1: >w2=int64#3 = reverse(flip(<w2=int64#3)); // asm 2: >w2=u2 = reverse(flip(<w2=u2)); u2 = reverse(flip(u2)); // qhasm: w3 = reverse flip w3 // asm 1: >w3=int64#4 = reverse(flip(<w3=int64#4)); // asm 2: >w3=u3 = reverse(flip(<w3=u3)); u3 = reverse(flip(u3)); // qhasm: w0_spill = w0 // asm 1: >w0_spill=spill64#9 = <w0=int64#1; // asm 2: >w0_spill=d8 = <w0=u0; d8 = u0; // qhasm: w1_spill = w1 // asm 1: >w1_spill=spill64#10 = <w1=int64#2; // asm 2: >w1_spill=d9 = <w1=u1; d9 = u1; // qhasm: w2_spill = w2 // asm 1: >w2_spill=spill64#11 = <w2=int64#3; // asm 2: >w2_spill=d10 = <w2=u2; d10 = u2; // qhasm: w3_spill = w3 // asm 1: >w3_spill=spill64#12 = <w3=int64#4; // asm 2: >w3_spill=d11 = <w3=u3; d11 = u3; // qhasm: w4 = flip mem64[in]; in += 8 // asm 1: >w4=int64#1 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w4=u0 = flip(load64(<in=p1)); <in=p1 += 8; u0 = flip(load64(p1)); p1 += 8; // qhasm: w5 = flip mem64[in]; in += 8 // asm 1: >w5=int64#2 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w5=u1 = flip(load64(<in=p1)); <in=p1 += 8; u1 = flip(load64(p1)); p1 += 8; // qhasm: w6 = flip mem64[in]; in += 8 // asm 1: >w6=int64#3 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w6=u2 = flip(load64(<in=p1)); <in=p1 += 8; u2 = flip(load64(p1)); p1 += 8; // qhasm: w7 = flip mem64[in]; in += 8 // asm 1: >w7=int64#4 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w7=u3 = flip(load64(<in=p1)); <in=p1 += 8; u3 = flip(load64(p1)); p1 += 8; // qhasm: w4 = reverse flip w4 // asm 1: >w4=int64#1 = reverse(flip(<w4=int64#1)); // asm 2: >w4=u0 = reverse(flip(<w4=u0)); u0 = reverse(flip(u0)); // qhasm: w5 = reverse flip w5 // asm 1: >w5=int64#2 = reverse(flip(<w5=int64#2)); // asm 2: >w5=u1 = reverse(flip(<w5=u1)); u1 = reverse(flip(u1)); // qhasm: w6 = reverse flip w6 // asm 1: >w6=int64#3 = reverse(flip(<w6=int64#3)); // asm 2: >w6=u2 = reverse(flip(<w6=u2)); u2 = reverse(flip(u2)); // qhasm: w7 = reverse flip w7 // asm 1: >w7=int64#4 = reverse(flip(<w7=int64#4)); // asm 2: >w7=u3 = reverse(flip(<w7=u3)); u3 = reverse(flip(u3)); // qhasm: w4_spill = w4 // asm 1: >w4_spill=spill64#13 = <w4=int64#1; // asm 2: >w4_spill=d12 = <w4=u0; d12 = u0; // qhasm: w5_spill = w5 // asm 1: >w5_spill=spill64#14 = <w5=int64#2; // asm 2: >w5_spill=d13 = <w5=u1; d13 = u1; // qhasm: w6_spill = w6 // asm 1: >w6_spill=spill64#15 = <w6=int64#3; // asm 2: >w6_spill=d14 = <w6=u2; d14 = u2; // qhasm: w7_spill = w7 // asm 1: >w7_spill=spill64#16 = <w7=int64#4; // asm 2: >w7_spill=d15 = <w7=u3; d15 = u3; // qhasm: w8 = flip mem64[in]; in += 8 // asm 1: >w8=int64#1 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w8=u0 = flip(load64(<in=p1)); <in=p1 += 8; u0 = flip(load64(p1)); p1 += 8; // qhasm: w9 = flip mem64[in]; in += 8 // asm 1: >w9=int64#2 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w9=u1 = flip(load64(<in=p1)); <in=p1 += 8; u1 = flip(load64(p1)); p1 += 8; // qhasm: w10 = flip mem64[in]; in += 8 // asm 1: >w10=int64#3 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w10=u2 = flip(load64(<in=p1)); <in=p1 += 8; u2 = flip(load64(p1)); p1 += 8; // qhasm: w11 = flip mem64[in]; in += 8 // asm 1: >w11=int64#4 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w11=u3 = flip(load64(<in=p1)); <in=p1 += 8; u3 = flip(load64(p1)); p1 += 8; // qhasm: w8 = reverse flip w8 // asm 1: >w8=int64#1 = reverse(flip(<w8=int64#1)); // asm 2: >w8=u0 = reverse(flip(<w8=u0)); u0 = reverse(flip(u0)); // qhasm: w9 = reverse flip w9 // asm 1: >w9=int64#2 = reverse(flip(<w9=int64#2)); // asm 2: >w9=u1 = reverse(flip(<w9=u1)); u1 = reverse(flip(u1)); // qhasm: w10 = reverse flip w10 // asm 1: >w10=int64#3 = reverse(flip(<w10=int64#3)); // asm 2: >w10=u2 = reverse(flip(<w10=u2)); u2 = reverse(flip(u2)); // qhasm: w11 = reverse flip w11 // asm 1: >w11=int64#4 = reverse(flip(<w11=int64#4)); // asm 2: >w11=u3 = reverse(flip(<w11=u3)); u3 = reverse(flip(u3)); // qhasm: w0_next = w8 // asm 1: >w0_next=stack64#9 = <w8=int64#1; // asm 2: >w0_next=m8 = <w8=u0; m8 = u0; // qhasm: w1_next = w9 // asm 1: >w1_next=stack64#10 = <w9=int64#2; // asm 2: >w1_next=m9 = <w9=u1; m9 = u1; // qhasm: w2_next = w10 // asm 1: >w2_next=stack64#11 = <w10=int64#3; // asm 2: >w2_next=m10 = <w10=u2; m10 = u2; // qhasm: w3_next = w11 // asm 1: >w3_next=stack64#12 = <w11=int64#4; // asm 2: >w3_next=m11 = <w11=u3; m11 = u3; // qhasm: w12 = flip mem64[in]; in += 8 // asm 1: >w12=int64#1 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w12=u0 = flip(load64(<in=p1)); <in=p1 += 8; u0 = flip(load64(p1)); p1 += 8; // qhasm: w13 = flip mem64[in]; in += 8 // asm 1: >w13=int64#2 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w13=u1 = flip(load64(<in=p1)); <in=p1 += 8; u1 = flip(load64(p1)); p1 += 8; // qhasm: w14 = flip mem64[in]; in += 8 // asm 1: >w14=int64#3 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w14=u2 = flip(load64(<in=p1)); <in=p1 += 8; u2 = flip(load64(p1)); p1 += 8; // qhasm: w15 = flip mem64[in]; in += 8 // asm 1: >w15=int64#4 = flip(load64(<in=ptr#2)); <in=ptr#2 += 8; // asm 2: >w15=u3 = flip(load64(<in=p1)); <in=p1 += 8; u3 = flip(load64(p1)); p1 += 8; // qhasm: w12 = reverse flip w12 // asm 1: >w12=int64#1 = reverse(flip(<w12=int64#1)); // asm 2: >w12=u0 = reverse(flip(<w12=u0)); u0 = reverse(flip(u0)); // qhasm: w13 = reverse flip w13 // asm 1: >w13=int64#2 = reverse(flip(<w13=int64#2)); // asm 2: >w13=u1 = reverse(flip(<w13=u1)); u1 = reverse(flip(u1)); // qhasm: w14 = reverse flip w14 // asm 1: >w14=int64#3 = reverse(flip(<w14=int64#3)); // asm 2: >w14=u2 = reverse(flip(<w14=u2)); u2 = reverse(flip(u2)); // qhasm: w15 = reverse flip w15 // asm 1: >w15=int64#4 = reverse(flip(<w15=int64#4)); // asm 2: >w15=u3 = reverse(flip(<w15=u3)); u3 = reverse(flip(u3)); // qhasm: w4_next = w12 // asm 1: >w4_next=stack64#13 = <w12=int64#1; // asm 2: >w4_next=m12 = <w12=u0; m12 = u0; // qhasm: w5_next = w13 // asm 1: >w5_next=stack64#14 = <w13=int64#2; // asm 2: >w5_next=m13 = <w13=u1; m13 = u1; // qhasm: w6_next = w14 // asm 1: >w6_next=stack64#15 = <w14=int64#3; // asm 2: >w6_next=m14 = <w14=u2; m14 = u2; // qhasm: w7_next = w15 // asm 1: >w7_next=stack64#16 = <w15=int64#4; // asm 2: >w7_next=m15 = <w15=u3; m15 = u3; // qhasm: in_stack = in // asm 1: >in_stack=stackptr#2 = <in=ptr#2; // asm 2: >in_stack=n1 = <in=p1; n1 = p1; // qhasm: i = 80 simple // asm 1: >i=int32#1 = 80; // asm 2: >i=i0 = 80; i0 = 80; // qhasm: i_stack = i // asm 1: >i_stack=stack32#2 = <i=int32#1; // asm 2: >i_stack=o1 = <i=i0; o1 = i0; // qhasm: innerloop: label_innerloop: // qhasm: assign 0 to r0_spill // qhasm: assign 1 to r1_spill // qhasm: assign 2 to r2_spill // qhasm: assign 3 to r3_spill // qhasm: assign 4 to r4_spill // qhasm: assign 5 to r5_spill // qhasm: assign 6 to r6_spill // qhasm: assign 7 to r7_spill // qhasm: r3 = r3_spill // asm 1: >r3=int64#1 = <r3_spill=spill64#4; // asm 2: >r3=u0 = <r3_spill=d3; u0 = d3; // qhasm: r4 = r4_spill // asm 1: >r4=int64#2 = <r4_spill=spill64#5; // asm 2: >r4=u1 = <r4_spill=d4; u1 = d4; // qhasm: r5 = r5_spill // asm 1: >r5=int64#3 = <r5_spill=spill64#6; // asm 2: >r5=u2 = <r5_spill=d5; u2 = d5; // qhasm: r6 = r6_spill // asm 1: >r6=int64#4 = <r6_spill=spill64#7; // asm 2: >r6=u3 = <r6_spill=d6; u3 = d6; // qhasm: r7 = r7_spill // asm 1: >r7=int64#5 = <r7_spill=spill64#8; // asm 2: >r7=u4 = <r7_spill=d7; u4 = d7; // qhasm: w0 = w0_spill // asm 1: >w0=int64#6 = <w0_spill=spill64#9; // asm 2: >w0=u5 = <w0_spill=d8; u5 = d8; // qhasm: r7 += w0 + mem64[constants] + Sigma1(r4) + Ch(r4,r5,r6); constants += 8 // asm 1: <r7=int64#5 += <w0=int64#6 + load64(<constants=ptr#1) + Sigma1(<r4=int64#2) + Ch(<r4=int64#2,<r5=int64#3,<r6=int64#4); // asm 2: <r7=u4 += <w0=u5 + load64(<constants=p0) + Sigma1(<r4=u1) + Ch(<r4=u1,<r5=u2,<r6=u3); u4 += u5 + load64(p0) + Sigma1(u1) + Ch(u1,u2,u3); // asm 1: <constants=ptr#1 += 8; // asm 2: <constants=p0 += 8; p0 += 8; // qhasm: r3 += r7 // asm 1: <r3=int64#1 += <r7=int64#5; // asm 2: <r3=u0 += <r7=u4; u0 += u4; // qhasm: r3_spill = r3 // asm 1: >r3_spill=spill64#4 = <r3=int64#1; // asm 2: >r3_spill=d3 = <r3=u0; d3 = u0; // qhasm: r0 = r0_spill // asm 1: >r0=int64#2 = <r0_spill=spill64#1; // asm 2: >r0=u1 = <r0_spill=d0; u1 = d0; // qhasm: r1 = r1_spill // asm 1: >r1=int64#3 = <r1_spill=spill64#2; // asm 2: >r1=u2 = <r1_spill=d1; u2 = d1; // qhasm: r2 = r2_spill // asm 1: >r2=int64#4 = <r2_spill=spill64#3; // asm 2: >r2=u3 = <r2_spill=d2; u3 = d2; // qhasm: r7 += Sigma0(r0) + Maj(r0,r1,r2) // asm 1: <r7=int64#5 += Sigma0(<r0=int64#2) + Maj(<r0=int64#2,<r1=int64#3,<r2=int64#4); // asm 2: <r7=u4 += Sigma0(<r0=u1) + Maj(<r0=u1,<r1=u2,<r2=u3); u4 += Sigma0(u1) + Maj(u1,u2,u3); // qhasm: r7_spill = r7 // asm 1: >r7_spill=spill64#8 = <r7=int64#5; // asm 2: >r7_spill=d7 = <r7=u4; d7 = u4; // qhasm: r4 = r4_spill // asm 1: >r4=int64#2 = <r4_spill=spill64#5; // asm 2: >r4=u1 = <r4_spill=d4; u1 = d4; // qhasm: r5 = r5_spill // asm 1: >r5=int64#3 = <r5_spill=spill64#6; // asm 2: >r5=u2 = <r5_spill=d5; u2 = d5; // qhasm: r6 = r6_spill // asm 1: >r6=int64#5 = <r6_spill=spill64#7; // asm 2: >r6=u4 = <r6_spill=d6; u4 = d6; // qhasm: w1 = w1_spill // asm 1: >w1=int64#6 = <w1_spill=spill64#10; // asm 2: >w1=u5 = <w1_spill=d9; u5 = d9; // qhasm: r6 += w1 + mem64[constants] + Sigma1(r3) + Ch(r3,r4,r5); constants += 8 // asm 1: <r6=int64#5 += <w1=int64#6 + load64(<constants=ptr#1) + Sigma1(<r3=int64#1) + Ch(<r3=int64#1,<r4=int64#2,<r5=int64#3); // asm 2: <r6=u4 += <w1=u5 + load64(<constants=p0) + Sigma1(<r3=u0) + Ch(<r3=u0,<r4=u1,<r5=u2); u4 += u5 + load64(p0) + Sigma1(u0) + Ch(u0,u1,u2); // asm 1: <constants=ptr#1 += 8; // asm 2: <constants=p0 += 8; p0 += 8; // qhasm: r2 += r6 // asm 1: <r2=int64#4 += <r6=int64#5; // asm 2: <r2=u3 += <r6=u4; u3 += u4; // qhasm: r2_spill = r2 // asm 1: >r2_spill=spill64#3 = <r2=int64#4; // asm 2: >r2_spill=d2 = <r2=u3; d2 = u3; // qhasm: r7 = r7_spill // asm 1: >r7=int64#1 = <r7_spill=spill64#8; // asm 2: >r7=u0 = <r7_spill=d7; u0 = d7; // qhasm: r0 = r0_spill // asm 1: >r0=int64#2 = <r0_spill=spill64#1; // asm 2: >r0=u1 = <r0_spill=d0; u1 = d0; // qhasm: r1 = r1_spill // asm 1: >r1=int64#3 = <r1_spill=spill64#2; // asm 2: >r1=u2 = <r1_spill=d1; u2 = d1; // qhasm: r6 += Sigma0(r7) + Maj(r7,r0,r1) // asm 1: <r6=int64#5 += Sigma0(<r7=int64#1) + Maj(<r7=int64#1,<r0=int64#2,<r1=int64#3); // asm 2: <r6=u4 += Sigma0(<r7=u0) + Maj(<r7=u0,<r0=u1,<r1=u2); u4 += Sigma0(u0) + Maj(u0,u1,u2); // qhasm: r6_spill = r6 // asm 1: >r6_spill=spill64#7 = <r6=int64#5; // asm 2: >r6_spill=d6 = <r6=u4; d6 = u4; // qhasm: assign 0 to r0_spill // qhasm: assign 1 to r1_spill // qhasm: assign 2 to r2_spill // qhasm: assign 3 to r3_spill // qhasm: assign 4 to r4_spill // qhasm: assign 5 to r5_spill // qhasm: assign 6 to r6_spill // qhasm: assign 7 to r7_spill // qhasm: r3 = r3_spill // asm 1: >r3=int64#1 = <r3_spill=spill64#4; // asm 2: >r3=u0 = <r3_spill=d3; u0 = d3; // qhasm: r4 = r4_spill // asm 1: >r4=int64#2 = <r4_spill=spill64#5; // asm 2: >r4=u1 = <r4_spill=d4; u1 = d4; // qhasm: r5 = r5_spill // asm 1: >r5=int64#5 = <r5_spill=spill64#6; // asm 2: >r5=u4 = <r5_spill=d5; u4 = d5; // qhasm: w2 = w2_spill // asm 1: >w2=int64#6 = <w2_spill=spill64#11; // asm 2: >w2=u5 = <w2_spill=d10; u5 = d10; // qhasm: r5 += w2 + mem64[constants] + Sigma1(r2) + Ch(r2,r3,r4); constants += 8 // asm 1: <r5=int64#5 += <w2=int64#6 + load64(<constants=ptr#1) + Sigma1(<r2=int64#4) + Ch(<r2=int64#4,<r3=int64#1,<r4=int64#2); // asm 2: <r5=u4 += <w2=u5 + load64(<constants=p0) + Sigma1(<r2=u3) + Ch(<r2=u3,<r3=u0,<r4=u1); u4 += u5 + load64(p0) + Sigma1(u3) + Ch(u3,u0,u1); // asm 1: <constants=ptr#1 += 8; // asm 2: <constants=p0 += 8; p0 += 8; // qhasm: r1 += r5 // asm 1: <r1=int64#3 += <r5=int64#5; // asm 2: <r1=u2 += <r5=u4; u2 += u4; // qhasm: r1_spill = r1 // asm 1: >r1_spill=spill64#2 = <r1=int64#3; // asm 2: >r1_spill=d1 = <r1=u2; d1 = u2; // qhasm: r6 = r6_spill // asm 1: >r6=int64#1 = <r6_spill=spill64#7; // asm 2: >r6=u0 = <r6_spill=d6; u0 = d6; // qhasm: r7 = r7_spill // asm 1: >r7=int64#2 = <r7_spill=spill64#8; // asm 2: >r7=u1 = <r7_spill=d7; u1 = d7; // qhasm: r0 = r0_spill // asm 1: >r0=int64#4 = <r0_spill=spill64#1; // asm 2: >r0=u3 = <r0_spill=d0; u3 = d0; // qhasm: r5 += Sigma0(r6) + Maj(r6,r7,r0) // asm 1: <r5=int64#5 += Sigma0(<r6=int64#1) + Maj(<r6=int64#1,<r7=int64#2,<r0=int64#4); // asm 2: <r5=u4 += Sigma0(<r6=u0) + Maj(<r6=u0,<r7=u1,<r0=u3); u4 += Sigma0(u0) + Maj(u0,u1,u3); // qhasm: r5_spill = r5 // asm 1: >r5_spill=spill64#6 = <r5=int64#5; // asm 2: >r5_spill=d5 = <r5=u4; d5 = u4; // qhasm: r2 = r2_spill // asm 1: >r2=int64#1 = <r2_spill=spill64#3; // asm 2: >r2=u0 = <r2_spill=d2; u0 = d2; // qhasm: r3 = r3_spill // asm 1: >r3=int64#2 = <r3_spill=spill64#4; // asm 2: >r3=u1 = <r3_spill=d3; u1 = d3; // qhasm: r4 = r4_spill // asm 1: >r4=int64#5 = <r4_spill=spill64#5; // asm 2: >r4=u4 = <r4_spill=d4; u4 = d4; // qhasm: w3 = w3_spill // asm 1: >w3=int64#6 = <w3_spill=spill64#12; // asm 2: >w3=u5 = <w3_spill=d11; u5 = d11; // qhasm: r4 += w3 + mem64[constants] + Sigma1(r1) + Ch(r1,r2,r3); constants += 8 // asm 1: <r4=int64#5 += <w3=int64#6 + load64(<constants=ptr#1) + Sigma1(<r1=int64#3) + Ch(<r1=int64#3,<r2=int64#1,<r3=int64#2); // asm 2: <r4=u4 += <w3=u5 + load64(<constants=p0) + Sigma1(<r1=u2) + Ch(<r1=u2,<r2=u0,<r3=u1); u4 += u5 + load64(p0) + Sigma1(u2) + Ch(u2,u0,u1); // asm 1: <constants=ptr#1 += 8; // asm 2: <constants=p0 += 8; p0 += 8; // qhasm: r0 += r4 // asm 1: <r0=int64#4 += <r4=int64#5; // asm 2: <r0=u3 += <r4=u4; u3 += u4; // qhasm: r0_spill = r0 // asm 1: >r0_spill=spill64#1 = <r0=int64#4; // asm 2: >r0_spill=d0 = <r0=u3; d0 = u3; // qhasm: r5 = r5_spill // asm 1: >r5=int64#1 = <r5_spill=spill64#6; // asm 2: >r5=u0 = <r5_spill=d5; u0 = d5; // qhasm: r6 = r6_spill // asm 1: >r6=int64#2 = <r6_spill=spill64#7; // asm 2: >r6=u1 = <r6_spill=d6; u1 = d6; // qhasm: r7 = r7_spill // asm 1: >r7=int64#3 = <r7_spill=spill64#8; // asm 2: >r7=u2 = <r7_spill=d7; u2 = d7; // qhasm: r4 += Sigma0(r5) + Maj(r5,r6,r7) // asm 1: <r4=int64#5 += Sigma0(<r5=int64#1) + Maj(<r5=int64#1,<r6=int64#2,<r7=int64#3); // asm 2: <r4=u4 += Sigma0(<r5=u0) + Maj(<r5=u0,<r6=u1,<r7=u2); u4 += Sigma0(u0) + Maj(u0,u1,u2); // qhasm: r4_spill = r4 // asm 1: >r4_spill=spill64#5 = <r4=int64#5; // asm 2: >r4_spill=d4 = <r4=u4; d4 = u4; // qhasm: assign 0 to r0_spill // qhasm: assign 1 to r1_spill // qhasm: assign 2 to r2_spill // qhasm: assign 3 to r3_spill // qhasm: assign 4 to r4_spill // qhasm: assign 5 to r5_spill // qhasm: assign 6 to r6_spill // qhasm: assign 7 to r7_spill // qhasm: r1 = r1_spill // asm 1: >r1=int64#1 = <r1_spill=spill64#2; // asm 2: >r1=u0 = <r1_spill=d1; u0 = d1; // qhasm: r2 = r2_spill // asm 1: >r2=int64#2 = <r2_spill=spill64#3; // asm 2: >r2=u1 = <r2_spill=d2; u1 = d2; // qhasm: r3 = r3_spill // asm 1: >r3=int64#5 = <r3_spill=spill64#4; // asm 2: >r3=u4 = <r3_spill=d3; u4 = d3; // qhasm: w4 = w4_spill // asm 1: >w4=int64#6 = <w4_spill=spill64#13; // asm 2: >w4=u5 = <w4_spill=d12; u5 = d12; // qhasm: r3 += w4 + mem64[constants] + Sigma1(r0) + Ch(r0,r1,r2); constants += 8 // asm 1: <r3=int64#5 += <w4=int64#6 + load64(<constants=ptr#1) + Sigma1(<r0=int64#4) + Ch(<r0=int64#4,<r1=int64#1,<r2=int64#2); // asm 2: <r3=u4 += <w4=u5 + load64(<constants=p0) + Sigma1(<r0=u3) + Ch(<r0=u3,<r1=u0,<r2=u1); u4 += u5 + load64(p0) + Sigma1(u3) + Ch(u3,u0,u1); // asm 1: <constants=ptr#1 += 8; // asm 2: <constants=p0 += 8; p0 += 8; // qhasm: r7 += r3 // asm 1: <r7=int64#3 += <r3=int64#5; // asm 2: <r7=u2 += <r3=u4; u2 += u4; // qhasm: r7_spill = r7 // asm 1: >r7_spill=spill64#8 = <r7=int64#3; // asm 2: >r7_spill=d7 = <r7=u2; d7 = u2; // qhasm: r4 = r4_spill // asm 1: >r4=int64#1 = <r4_spill=spill64#5; // asm 2: >r4=u0 = <r4_spill=d4; u0 = d4; // qhasm: r5 = r5_spill // asm 1: >r5=int64#2 = <r5_spill=spill64#6; // asm 2: >r5=u1 = <r5_spill=d5; u1 = d5; // qhasm: r6 = r6_spill // asm 1: >r6=int64#4 = <r6_spill=spill64#7; // asm 2: >r6=u3 = <r6_spill=d6; u3 = d6; // qhasm: r3 += Sigma0(r4) + Maj(r4,r5,r6) // asm 1: <r3=int64#5 += Sigma0(<r4=int64#1) + Maj(<r4=int64#1,<r5=int64#2,<r6=int64#4); // asm 2: <r3=u4 += Sigma0(<r4=u0) + Maj(<r4=u0,<r5=u1,<r6=u3); u4 += Sigma0(u0) + Maj(u0,u1,u3); // qhasm: r3_spill = r3 // asm 1: >r3_spill=spill64#4 = <r3=int64#5; // asm 2: >r3_spill=d3 = <r3=u4; d3 = u4; // qhasm: r0 = r0_spill // asm 1: >r0=int64#1 = <r0_spill=spill64#1; // asm 2: >r0=u0 = <r0_spill=d0; u0 = d0; // qhasm: r1 = r1_spill // asm 1: >r1=int64#2 = <r1_spill=spill64#2; // asm 2: >r1=u1 = <r1_spill=d1; u1 = d1; // qhasm: r2 = r2_spill // asm 1: >r2=int64#5 = <r2_spill=spill64#3; // asm 2: >r2=u4 = <r2_spill=d2; u4 = d2; // qhasm: w5 = w5_spill // asm 1: >w5=int64#6 = <w5_spill=spill64#14; // asm 2: >w5=u5 = <w5_spill=d13; u5 = d13; // qhasm: r2 += w5 + mem64[constants] + Sigma1(r7) + Ch(r7,r0,r1); constants += 8 // asm 1: <r2=int64#5 += <w5=int64#6 + load64(<constants=ptr#1) + Sigma1(<r7=int64#3) + Ch(<r7=int64#3,<r0=int64#1,<r1=int64#2); // asm 2: <r2=u4 += <w5=u5 + load64(<constants=p0) + Sigma1(<r7=u2) + Ch(<r7=u2,<r0=u0,<r1=u1); u4 += u5 + load64(p0) + Sigma1(u2) + Ch(u2,u0,u1); // asm 1: <constants=ptr#1 += 8; // asm 2: <constants=p0 += 8; p0 += 8; // qhasm: r6 += r2 // asm 1: <r6=int64#4 += <r2=int64#5; // asm 2: <r6=u3 += <r2=u4; u3 += u4; // qhasm: r6_spill = r6 // asm 1: >r6_spill=spill64#7 = <r6=int64#4; // asm 2: >r6_spill=d6 = <r6=u3; d6 = u3; // qhasm: r3 = r3_spill // asm 1: >r3=int64#1 = <r3_spill=spill64#4; // asm 2: >r3=u0 = <r3_spill=d3; u0 = d3; // qhasm: r4 = r4_spill // asm 1: >r4=int64#2 = <r4_spill=spill64#5; // asm 2: >r4=u1 = <r4_spill=d4; u1 = d4; // qhasm: r5 = r5_spill // asm 1: >r5=int64#3 = <r5_spill=spill64#6; // asm 2: >r5=u2 = <r5_spill=d5; u2 = d5; // qhasm: r2 += Sigma0(r3) + Maj(r3,r4,r5) // asm 1: <r2=int64#5 += Sigma0(<r3=int64#1) + Maj(<r3=int64#1,<r4=int64#2,<r5=int64#3); // asm 2: <r2=u4 += Sigma0(<r3=u0) + Maj(<r3=u0,<r4=u1,<r5=u2); u4 += Sigma0(u0) + Maj(u0,u1,u2); // qhasm: r2_spill = r2 // asm 1: >r2_spill=spill64#3 = <r2=int64#5; // asm 2: >r2_spill=d2 = <r2=u4; d2 = u4; // qhasm: assign 0 to r0_spill // qhasm: assign 1 to r1_spill // qhasm: assign 2 to r2_spill // qhasm: assign 3 to r3_spill // qhasm: assign 4 to r4_spill // qhasm: assign 5 to r5_spill // qhasm: assign 6 to r6_spill // qhasm: assign 7 to r7_spill // qhasm: r7 = r7_spill // asm 1: >r7=int64#1 = <r7_spill=spill64#8; // asm 2: >r7=u0 = <r7_spill=d7; u0 = d7; // qhasm: r0 = r0_spill // asm 1: >r0=int64#2 = <r0_spill=spill64#1; // asm 2: >r0=u1 = <r0_spill=d0; u1 = d0; // qhasm: r1 = r1_spill // asm 1: >r1=int64#5 = <r1_spill=spill64#2; // asm 2: >r1=u4 = <r1_spill=d1; u4 = d1; // qhasm: w6 = w6_spill // asm 1: >w6=int64#6 = <w6_spill=spill64#15; // asm 2: >w6=u5 = <w6_spill=d14; u5 = d14; // qhasm: r1 += w6 + mem64[constants] + Sigma1(r6) + Ch(r6,r7,r0); constants += 8 // asm 1: <r1=int64#5 += <w6=int64#6 + load64(<constants=ptr#1) + Sigma1(<r6=int64#4) + Ch(<r6=int64#4,<r7=int64#1,<r0=int64#2); // asm 2: <r1=u4 += <w6=u5 + load64(<constants=p0) + Sigma1(<r6=u3) + Ch(<r6=u3,<r7=u0,<r0=u1); u4 += u5 + load64(p0) + Sigma1(u3) + Ch(u3,u0,u1); // asm 1: <constants=ptr#1 += 8; // asm 2: <constants=p0 += 8; p0 += 8; // qhasm: r5 += r1 // asm 1: <r5=int64#3 += <r1=int64#5; // asm 2: <r5=u2 += <r1=u4; u2 += u4; // qhasm: r5_spill = r5 // asm 1: >r5_spill=spill64#6 = <r5=int64#3; // asm 2: >r5_spill=d5 = <r5=u2; d5 = u2; // qhasm: r2 = r2_spill // asm 1: >r2=int64#1 = <r2_spill=spill64#3; // asm 2: >r2=u0 = <r2_spill=d2; u0 = d2; // qhasm: r3 = r3_spill // asm 1: >r3=int64#2 = <r3_spill=spill64#4; // asm 2: >r3=u1 = <r3_spill=d3; u1 = d3; // qhasm: r4 = r4_spill // asm 1: >r4=int64#4 = <r4_spill=spill64#5; // asm 2: >r4=u3 = <r4_spill=d4; u3 = d4; // qhasm: r1 += Sigma0(r2) + Maj(r2,r3,r4) // asm 1: <r1=int64#5 += Sigma0(<r2=int64#1) + Maj(<r2=int64#1,<r3=int64#2,<r4=int64#4); // asm 2: <r1=u4 += Sigma0(<r2=u0) + Maj(<r2=u0,<r3=u1,<r4=u3); u4 += Sigma0(u0) + Maj(u0,u1,u3); // qhasm: r1_spill = r1 // asm 1: >r1_spill=spill64#2 = <r1=int64#5; // asm 2: >r1_spill=d1 = <r1=u4; d1 = u4; // qhasm: r6 = r6_spill // asm 1: >r6=int64#1 = <r6_spill=spill64#7; // asm 2: >r6=u0 = <r6_spill=d6; u0 = d6; // qhasm: r7 = r7_spill // asm 1: >r7=int64#2 = <r7_spill=spill64#8; // asm 2: >r7=u1 = <r7_spill=d7; u1 = d7; // qhasm: r0 = r0_spill // asm 1: >r0=int64#5 = <r0_spill=spill64#1; // asm 2: >r0=u4 = <r0_spill=d0; u4 = d0; // qhasm: w7 = w7_spill // asm 1: >w7=int64#6 = <w7_spill=spill64#16; // asm 2: >w7=u5 = <w7_spill=d15; u5 = d15; // qhasm: r0 += w7 + mem64[constants] + Sigma1(r5) + Ch(r5,r6,r7); constants += 8 // asm 1: <r0=int64#5 += <w7=int64#6 + load64(<constants=ptr#1) + Sigma1(<r5=int64#3) + Ch(<r5=int64#3,<r6=int64#1,<r7=int64#2); // asm 2: <r0=u4 += <w7=u5 + load64(<constants=p0) + Sigma1(<r5=u2) + Ch(<r5=u2,<r6=u0,<r7=u1); u4 += u5 + load64(p0) + Sigma1(u2) + Ch(u2,u0,u1); // asm 1: <constants=ptr#1 += 8; // asm 2: <constants=p0 += 8; p0 += 8; // qhasm: r4 += r0 // asm 1: <r4=int64#4 += <r0=int64#5; // asm 2: <r4=u3 += <r0=u4; u3 += u4; // qhasm: r4_spill = r4 // asm 1: >r4_spill=spill64#5 = <r4=int64#4; // asm 2: >r4_spill=d4 = <r4=u3; d4 = u3; // qhasm: r1 = r1_spill // asm 1: >r1=int64#1 = <r1_spill=spill64#2; // asm 2: >r1=u0 = <r1_spill=d1; u0 = d1; // qhasm: r2 = r2_spill // asm 1: >r2=int64#2 = <r2_spill=spill64#3; // asm 2: >r2=u1 = <r2_spill=d2; u1 = d2; // qhasm: r3 = r3_spill // asm 1: >r3=int64#3 = <r3_spill=spill64#4; // asm 2: >r3=u2 = <r3_spill=d3; u2 = d3; // qhasm: r0 += Sigma0(r1) + Maj(r1,r2,r3) // asm 1: <r0=int64#5 += Sigma0(<r1=int64#1) + Maj(<r1=int64#1,<r2=int64#2,<r3=int64#3); // asm 2: <r0=u4 += Sigma0(<r1=u0) + Maj(<r1=u0,<r2=u1,<r3=u2); u4 += Sigma0(u0) + Maj(u0,u1,u2); // qhasm: r0_spill = r0 // asm 1: >r0_spill=spill64#1 = <r0=int64#5; // asm 2: >r0_spill=d0 = <r0=u4; d0 = u4; // qhasm: assign 8 to w0_spill // qhasm: assign 9 to w1_spill // qhasm: assign 10 to w2_spill // qhasm: assign 11 to w3_spill // qhasm: assign 12 to w4_spill // qhasm: assign 13 to w5_spill // qhasm: assign 14 to w6_spill // qhasm: assign 15 to w7_spill // qhasm: i = i_stack // asm 1: >i=int32#1 = <i_stack=stack32#2; // asm 2: >i=i0 = <i_stack=o1; i0 = o1; // qhasm: =? i -= 8 // asm 1: equal = eq(<i=int32#1,8); unsignedge = ge(<i=int32#1,8); <i=int32#1 -= 8; // asm 2: equal = eq(<i=i0,8); unsignedge = ge(<i=i0,8); <i=i0 -= 8; equal = eq(i0,8); unsignedge = ge(i0,8); i0 -= 8; // qhasm: goto endinnerloop if = if (equal) goto label_endinnerloop; // qhasm: i_stack = i // asm 1: >i_stack=stack32#2 = <i=int32#1; // asm 2: >i_stack=o1 = <i=i0; o1 = i0; // qhasm: =? i - 8 // asm 1: equal = eq(<i=int32#1,8); // asm 2: equal = eq(<i=i0,8); equal = eq(i0,8); // qhasm: goto nearend if = if (equal) goto label_nearend; // qhasm: w8 = w0_spill // asm 1: >w8=int64#1 = <w0_spill=spill64#9; // asm 2: >w8=u0 = <w0_spill=d8; u0 = d8; // qhasm: w9 = w1_spill // asm 1: >w9=int64#2 = <w1_spill=spill64#10; // asm 2: >w9=u1 = <w1_spill=d9; u1 = d9; // qhasm: w6 = w6_next // asm 1: >w6=int64#3 = <w6_next=stack64#15; // asm 2: >w6=u2 = <w6_next=m14; u2 = m14; // qhasm: w1 = w1_next // asm 1: >w1=int64#4 = <w1_next=stack64#10; // asm 2: >w1=u3 = <w1_next=m9; u3 = m9; // qhasm: w8 += sigma1(w6) // asm 1: <w8=int64#1 += sigma1(<w6=int64#3); // asm 2: <w8=u0 += sigma1(<w6=u2); u0 += sigma1(u2); // qhasm: w8 += sigma0(w9) // asm 1: <w8=int64#1 += sigma0(<w9=int64#2); // asm 2: <w8=u0 += sigma0(<w9=u1); u0 += sigma0(u1); // qhasm: w8 += w1 // asm 1: <w8=int64#1 += <w1=int64#4; // asm 2: <w8=u0 += <w1=u3; u0 += u3; // qhasm: w1_spill = w1 // asm 1: >w1_spill=spill64#10 = <w1=int64#4; // asm 2: >w1_spill=d9 = <w1=u3; d9 = u3; // qhasm: w7 = w7_next // asm 1: >w7=int64#4 = <w7_next=stack64#16; // asm 2: >w7=u3 = <w7_next=m15; u3 = m15; // qhasm: w8_stack = w8 // asm 1: >w8_stack=stack64#16 = <w8=int64#1; // asm 2: >w8_stack=m15 = <w8=u0; m15 = u0; // qhasm: w9 += sigma1(w7) // asm 1: <w9=int64#2 += sigma1(<w7=int64#4); // asm 2: <w9=u1 += sigma1(<w7=u3); u1 += sigma1(u3); // qhasm: w10 = w2_spill // asm 1: >w10=int64#5 = <w2_spill=spill64#11; // asm 2: >w10=u4 = <w2_spill=d10; u4 = d10; // qhasm: w9 += sigma0(w10) // asm 1: <w9=int64#2 += sigma0(<w10=int64#5); // asm 2: <w9=u1 += sigma0(<w10=u4); u1 += sigma0(u4); // qhasm: w2 = w2_next // asm 1: >w2=int64#6 = <w2_next=stack64#11; // asm 2: >w2=u5 = <w2_next=m10; u5 = m10; // qhasm: w9 += w2 // asm 1: <w9=int64#2 += <w2=int64#6; // asm 2: <w9=u1 += <w2=u5; u1 += u5; // qhasm: w2_spill = w2 // asm 1: >w2_spill=spill64#11 = <w2=int64#6; // asm 2: >w2_spill=d10 = <w2=u5; d10 = u5; // qhasm: w1_next = w9 // asm 1: >w1_next=stack64#10 = <w9=int64#2; // asm 2: >w1_next=m9 = <w9=u1; m9 = u1; // qhasm: w10 += sigma1(w8) // asm 1: <w10=int64#5 += sigma1(<w8=int64#1); // asm 2: <w10=u4 += sigma1(<w8=u0); u4 += sigma1(u0); // qhasm: w11 = w3_spill // asm 1: >w11=int64#1 = <w3_spill=spill64#12; // asm 2: >w11=u0 = <w3_spill=d11; u0 = d11; // qhasm: w10 += sigma0(w11) // asm 1: <w10=int64#5 += sigma0(<w11=int64#1); // asm 2: <w10=u4 += sigma0(<w11=u0); u4 += sigma0(u0); // qhasm: w3 = w3_next // asm 1: >w3=int64#6 = <w3_next=stack64#12; // asm 2: >w3=u5 = <w3_next=m11; u5 = m11; // qhasm: w10 += w3 // asm 1: <w10=int64#5 += <w3=int64#6; // asm 2: <w10=u4 += <w3=u5; u4 += u5; // qhasm: w3_spill = w3 // asm 1: >w3_spill=spill64#12 = <w3=int64#6; // asm 2: >w3_spill=d11 = <w3=u5; d11 = u5; // qhasm: w2_next = w10 // asm 1: >w2_next=stack64#11 = <w10=int64#5; // asm 2: >w2_next=m10 = <w10=u4; m10 = u4; // qhasm: w11 += sigma1(w9) // asm 1: <w11=int64#1 += sigma1(<w9=int64#2); // asm 2: <w11=u0 += sigma1(<w9=u1); u0 += sigma1(u1); // qhasm: w12 = w4_spill // asm 1: >w12=int64#2 = <w4_spill=spill64#13; // asm 2: >w12=u1 = <w4_spill=d12; u1 = d12; // qhasm: w11 += sigma0(w12) // asm 1: <w11=int64#1 += sigma0(<w12=int64#2); // asm 2: <w11=u0 += sigma0(<w12=u1); u0 += sigma0(u1); // qhasm: w4 = w4_next // asm 1: >w4=int64#6 = <w4_next=stack64#13; // asm 2: >w4=u5 = <w4_next=m12; u5 = m12; // qhasm: w11 += w4 // asm 1: <w11=int64#1 += <w4=int64#6; // asm 2: <w11=u0 += <w4=u5; u0 += u5; // qhasm: w4_spill = w4 // asm 1: >w4_spill=spill64#13 = <w4=int64#6; // asm 2: >w4_spill=d12 = <w4=u5; d12 = u5; // qhasm: w3_next = w11 // asm 1: >w3_next=stack64#12 = <w11=int64#1; // asm 2: >w3_next=m11 = <w11=u0; m11 = u0; // qhasm: w12 += sigma1(w10) // asm 1: <w12=int64#2 += sigma1(<w10=int64#5); // asm 2: <w12=u1 += sigma1(<w10=u4); u1 += sigma1(u4); // qhasm: w13 = w5_spill // asm 1: >w13=int64#5 = <w5_spill=spill64#14; // asm 2: >w13=u4 = <w5_spill=d13; u4 = d13; // qhasm: w12 += sigma0(w13) // asm 1: <w12=int64#2 += sigma0(<w13=int64#5); // asm 2: <w12=u1 += sigma0(<w13=u4); u1 += sigma0(u4); // qhasm: w5 = w5_next // asm 1: >w5=int64#6 = <w5_next=stack64#14; // asm 2: >w5=u5 = <w5_next=m13; u5 = m13; // qhasm: w12 += w5 // asm 1: <w12=int64#2 += <w5=int64#6; // asm 2: <w12=u1 += <w5=u5; u1 += u5; // qhasm: w5_spill = w5 // asm 1: >w5_spill=spill64#14 = <w5=int64#6; // asm 2: >w5_spill=d13 = <w5=u5; d13 = u5; // qhasm: w4_next = w12 // asm 1: >w4_next=stack64#13 = <w12=int64#2; // asm 2: >w4_next=m12 = <w12=u1; m12 = u1; // qhasm: w13 += sigma1(w11) // asm 1: <w13=int64#5 += sigma1(<w11=int64#1); // asm 2: <w13=u4 += sigma1(<w11=u0); u4 += sigma1(u0); // qhasm: w14 = w6_spill // asm 1: >w14=int64#1 = <w6_spill=spill64#15; // asm 2: >w14=u0 = <w6_spill=d14; u0 = d14; // qhasm: w6_spill = w6 // asm 1: >w6_spill=spill64#15 = <w6=int64#3; // asm 2: >w6_spill=d14 = <w6=u2; d14 = u2; // qhasm: w13 += sigma0(w14) // asm 1: <w13=int64#5 += sigma0(<w14=int64#1); // asm 2: <w13=u4 += sigma0(<w14=u0); u4 += sigma0(u0); // qhasm: w13 += w6 // asm 1: <w13=int64#5 += <w6=int64#3; // asm 2: <w13=u4 += <w6=u2; u4 += u2; // qhasm: w5_next = w13 // asm 1: >w5_next=stack64#14 = <w13=int64#5; // asm 2: >w5_next=m13 = <w13=u4; m13 = u4; // qhasm: w14 += sigma1(w12) // asm 1: <w14=int64#1 += sigma1(<w12=int64#2); // asm 2: <w14=u0 += sigma1(<w12=u1); u0 += sigma1(u1); // qhasm: w15 = w7_spill // asm 1: >w15=int64#2 = <w7_spill=spill64#16; // asm 2: >w15=u1 = <w7_spill=d15; u1 = d15; // qhasm: w7_spill = w7 // asm 1: >w7_spill=spill64#16 = <w7=int64#4; // asm 2: >w7_spill=d15 = <w7=u3; d15 = u3; // qhasm: w14 += sigma0(w15) // asm 1: <w14=int64#1 += sigma0(<w15=int64#2); // asm 2: <w14=u0 += sigma0(<w15=u1); u0 += sigma0(u1); // qhasm: w14 += w7 // asm 1: <w14=int64#1 += <w7=int64#4; // asm 2: <w14=u0 += <w7=u3; u0 += u3; // qhasm: w6_next = w14 // asm 1: >w6_next=stack64#15 = <w14=int64#1; // asm 2: >w6_next=m14 = <w14=u0; m14 = u0; // qhasm: w15 += sigma1(w13) // asm 1: <w15=int64#2 += sigma1(<w13=int64#5); // asm 2: <w15=u1 += sigma1(<w13=u4); u1 += sigma1(u4); // qhasm: w0 = w0_next // asm 1: >w0=int64#1 = <w0_next=stack64#9; // asm 2: >w0=u0 = <w0_next=m8; u0 = m8; // qhasm: w8 = w8_stack // asm 1: >w8=int64#3 = <w8_stack=stack64#16; // asm 2: >w8=u2 = <w8_stack=m15; u2 = m15; // qhasm: w0_next = w8 // asm 1: >w0_next=stack64#9 = <w8=int64#3; // asm 2: >w0_next=m8 = <w8=u2; m8 = u2; // qhasm: w15 += sigma0(w0) // asm 1: <w15=int64#2 += sigma0(<w0=int64#1); // asm 2: <w15=u1 += sigma0(<w0=u0); u1 += sigma0(u0); // qhasm: w15 += w8 // asm 1: <w15=int64#2 += <w8=int64#3; // asm 2: <w15=u1 += <w8=u2; u1 += u2; // qhasm: w7_next = w15 // asm 1: >w7_next=stack64#16 = <w15=int64#2; // asm 2: >w7_next=m15 = <w15=u1; m15 = u1; // qhasm: w0_spill = w0 // asm 1: >w0_spill=spill64#9 = <w0=int64#1; // asm 2: >w0_spill=d8 = <w0=u0; d8 = u0; // qhasm: goto innerloop goto label_innerloop; // qhasm: nearend: label_nearend: // qhasm: w0 = w0_next // asm 1: >w0=int64#1 = <w0_next=stack64#9; // asm 2: >w0=u0 = <w0_next=m8; u0 = m8; // qhasm: w1 = w1_next // asm 1: >w1=int64#2 = <w1_next=stack64#10; // asm 2: >w1=u1 = <w1_next=m9; u1 = m9; // qhasm: w2 = w2_next // asm 1: >w2=int64#3 = <w2_next=stack64#11; // asm 2: >w2=u2 = <w2_next=m10; u2 = m10; // qhasm: w3 = w3_next // asm 1: >w3=int64#4 = <w3_next=stack64#12; // asm 2: >w3=u3 = <w3_next=m11; u3 = m11; // qhasm: w0_spill = w0 // asm 1: >w0_spill=spill64#9 = <w0=int64#1; // asm 2: >w0_spill=d8 = <w0=u0; d8 = u0; // qhasm: w1_spill = w1 // asm 1: >w1_spill=spill64#10 = <w1=int64#2; // asm 2: >w1_spill=d9 = <w1=u1; d9 = u1; // qhasm: w2_spill = w2 // asm 1: >w2_spill=spill64#11 = <w2=int64#3; // asm 2: >w2_spill=d10 = <w2=u2; d10 = u2; // qhasm: w3_spill = w3 // asm 1: >w3_spill=spill64#12 = <w3=int64#4; // asm 2: >w3_spill=d11 = <w3=u3; d11 = u3; // qhasm: w4 = w4_next // asm 1: >w4=int64#1 = <w4_next=stack64#13; // asm 2: >w4=u0 = <w4_next=m12; u0 = m12; // qhasm: w5 = w5_next // asm 1: >w5=int64#2 = <w5_next=stack64#14; // asm 2: >w5=u1 = <w5_next=m13; u1 = m13; // qhasm: w6 = w6_next // asm 1: >w6=int64#3 = <w6_next=stack64#15; // asm 2: >w6=u2 = <w6_next=m14; u2 = m14; // qhasm: w7 = w7_next // asm 1: >w7=int64#4 = <w7_next=stack64#16; // asm 2: >w7=u3 = <w7_next=m15; u3 = m15; // qhasm: w4_spill = w4 // asm 1: >w4_spill=spill64#13 = <w4=int64#1; // asm 2: >w4_spill=d12 = <w4=u0; d12 = u0; // qhasm: w5_spill = w5 // asm 1: >w5_spill=spill64#14 = <w5=int64#2; // asm 2: >w5_spill=d13 = <w5=u1; d13 = u1; // qhasm: w6_spill = w6 // asm 1: >w6_spill=spill64#15 = <w6=int64#3; // asm 2: >w6_spill=d14 = <w6=u2; d14 = u2; // qhasm: w7_spill = w7 // asm 1: >w7_spill=spill64#16 = <w7=int64#4; // asm 2: >w7_spill=d15 = <w7=u3; d15 = u3; // qhasm: goto innerloop goto label_innerloop; // qhasm: endinnerloop: label_endinnerloop: // qhasm: constants -= 640 // asm 1: <constants=ptr#1 -= 640; // asm 2: <constants=p0 -= 640; p0 -= 640; // qhasm: r0 = r0_spill // asm 1: >r0=int64#1 = <r0_spill=spill64#1; // asm 2: >r0=u0 = <r0_spill=d0; u0 = d0; // qhasm: r1 = r1_spill // asm 1: >r1=int64#2 = <r1_spill=spill64#2; // asm 2: >r1=u1 = <r1_spill=d1; u1 = d1; // qhasm: r2 = r2_spill // asm 1: >r2=int64#3 = <r2_spill=spill64#3; // asm 2: >r2=u2 = <r2_spill=d2; u2 = d2; // qhasm: r3 = r3_spill // asm 1: >r3=int64#4 = <r3_spill=spill64#4; // asm 2: >r3=u3 = <r3_spill=d3; u3 = d3; // qhasm: r0 += state0 // asm 1: <r0=int64#1 += <state0=stack64#1; // asm 2: <r0=u0 += <state0=m0; u0 += m0; // qhasm: r1 += state1 // asm 1: <r1=int64#2 += <state1=stack64#2; // asm 2: <r1=u1 += <state1=m1; u1 += m1; // qhasm: r2 += state2 // asm 1: <r2=int64#3 += <state2=stack64#3; // asm 2: <r2=u2 += <state2=m2; u2 += m2; // qhasm: r3 += state3 // asm 1: <r3=int64#4 += <state3=stack64#4; // asm 2: <r3=u3 += <state3=m3; u3 += m3; // qhasm: state0 = r0 // asm 1: >state0=stack64#1 = <r0=int64#1; // asm 2: >state0=m0 = <r0=u0; m0 = u0; // qhasm: state1 = r1 // asm 1: >state1=stack64#2 = <r1=int64#2; // asm 2: >state1=m1 = <r1=u1; m1 = u1; // qhasm: state2 = r2 // asm 1: >state2=stack64#3 = <r2=int64#3; // asm 2: >state2=m2 = <r2=u2; m2 = u2; // qhasm: state3 = r3 // asm 1: >state3=stack64#4 = <r3=int64#4; // asm 2: >state3=m3 = <r3=u3; m3 = u3; // qhasm: r0_spill = r0 // asm 1: >r0_spill=spill64#1 = <r0=int64#1; // asm 2: >r0_spill=d0 = <r0=u0; d0 = u0; // qhasm: r1_spill = r1 // asm 1: >r1_spill=spill64#2 = <r1=int64#2; // asm 2: >r1_spill=d1 = <r1=u1; d1 = u1; // qhasm: r2_spill = r2 // asm 1: >r2_spill=spill64#3 = <r2=int64#3; // asm 2: >r2_spill=d2 = <r2=u2; d2 = u2; // qhasm: r3_spill = r3 // asm 1: >r3_spill=spill64#4 = <r3=int64#4; // asm 2: >r3_spill=d3 = <r3=u3; d3 = u3; // qhasm: r4 = r4_spill // asm 1: >r4=int64#1 = <r4_spill=spill64#5; // asm 2: >r4=u0 = <r4_spill=d4; u0 = d4; // qhasm: r5 = r5_spill // asm 1: >r5=int64#2 = <r5_spill=spill64#6; // asm 2: >r5=u1 = <r5_spill=d5; u1 = d5; // qhasm: r6 = r6_spill // asm 1: >r6=int64#3 = <r6_spill=spill64#7; // asm 2: >r6=u2 = <r6_spill=d6; u2 = d6; // qhasm: r7 = r7_spill // asm 1: >r7=int64#4 = <r7_spill=spill64#8; // asm 2: >r7=u3 = <r7_spill=d7; u3 = d7; // qhasm: r4 += state4 // asm 1: <r4=int64#1 += <state4=stack64#5; // asm 2: <r4=u0 += <state4=m4; u0 += m4; // qhasm: r5 += state5 // asm 1: <r5=int64#2 += <state5=stack64#6; // asm 2: <r5=u1 += <state5=m5; u1 += m5; // qhasm: r6 += state6 // asm 1: <r6=int64#3 += <state6=stack64#7; // asm 2: <r6=u2 += <state6=m6; u2 += m6; // qhasm: r7 += state7 // asm 1: <r7=int64#4 += <state7=stack64#8; // asm 2: <r7=u3 += <state7=m7; u3 += m7; // qhasm: state4 = r4 // asm 1: >state4=stack64#5 = <r4=int64#1; // asm 2: >state4=m4 = <r4=u0; m4 = u0; // qhasm: state5 = r5 // asm 1: >state5=stack64#6 = <r5=int64#2; // asm 2: >state5=m5 = <r5=u1; m5 = u1; // qhasm: state6 = r6 // asm 1: >state6=stack64#7 = <r6=int64#3; // asm 2: >state6=m6 = <r6=u2; m6 = u2; // qhasm: state7 = r7 // asm 1: >state7=stack64#8 = <r7=int64#4; // asm 2: >state7=m7 = <r7=u3; m7 = u3; // qhasm: r4_spill = r4 // asm 1: >r4_spill=spill64#5 = <r4=int64#1; // asm 2: >r4_spill=d4 = <r4=u0; d4 = u0; // qhasm: r5_spill = r5 // asm 1: >r5_spill=spill64#6 = <r5=int64#2; // asm 2: >r5_spill=d5 = <r5=u1; d5 = u1; // qhasm: r6_spill = r6 // asm 1: >r6_spill=spill64#7 = <r6=int64#3; // asm 2: >r6_spill=d6 = <r6=u2; d6 = u2; // qhasm: r7_spill = r7 // asm 1: >r7_spill=spill64#8 = <r7=int64#4; // asm 2: >r7_spill=d7 = <r7=u3; d7 = u3; // qhasm: inlen = inlen_stack // asm 1: >inlen=int32#1 = <inlen_stack=stack32#1; // asm 2: >inlen=i0 = <inlen_stack=o0; i0 = o0; // qhasm: unsigned>=? inlen -= 128 // asm 1: equal = eq(<inlen=int32#1,128); unsignedge = ge(<inlen=int32#1,128); <inlen=int32#1 -= 128; // asm 2: equal = eq(<inlen=i0,128); unsignedge = ge(<inlen=i0,128); <inlen=i0 -= 128; equal = eq(i0,128); unsignedge = ge(i0,128); i0 -= 128; // qhasm: inlen_stack = inlen // asm 1: >inlen_stack=stack32#1 = <inlen=int32#1; // asm 2: >inlen_stack=o0 = <inlen=i0; o0 = i0; // qhasm: goto mainloop if unsigned>= if (unsignedge) goto label_mainloop; // qhasm: endmainloop: label_endmainloop: // qhasm: statebytes = statebytes_stack // asm 1: >statebytes=ptr#1 = <statebytes_stack=stackptr#1; // asm 2: >statebytes=p0 = <statebytes_stack=n0; p0 = n0; // qhasm: r0 = state0 // asm 1: >r0=int64#1 = <state0=stack64#1; // asm 2: >r0=u0 = <state0=m0; u0 = m0; // qhasm: r1 = state1 // asm 1: >r1=int64#2 = <state1=stack64#2; // asm 2: >r1=u1 = <state1=m1; u1 = m1; // qhasm: r2 = state2 // asm 1: >r2=int64#3 = <state2=stack64#3; // asm 2: >r2=u2 = <state2=m2; u2 = m2; // qhasm: r3 = state3 // asm 1: >r3=int64#4 = <state3=stack64#4; // asm 2: >r3=u3 = <state3=m3; u3 = m3; // qhasm: r0 = reverse flip r0 // asm 1: >r0=int64#1 = reverse(flip(<r0=int64#1)); // asm 2: >r0=u0 = reverse(flip(<r0=u0)); u0 = reverse(flip(u0)); // qhasm: r1 = reverse flip r1 // asm 1: >r1=int64#2 = reverse(flip(<r1=int64#2)); // asm 2: >r1=u1 = reverse(flip(<r1=u1)); u1 = reverse(flip(u1)); // qhasm: r2 = reverse flip r2 // asm 1: >r2=int64#3 = reverse(flip(<r2=int64#3)); // asm 2: >r2=u2 = reverse(flip(<r2=u2)); u2 = reverse(flip(u2)); // qhasm: r3 = reverse flip r3 // asm 1: >r3=int64#4 = reverse(flip(<r3=int64#4)); // asm 2: >r3=u3 = reverse(flip(<r3=u3)); u3 = reverse(flip(u3)); // qhasm: mem64[statebytes] = flip r0 // asm 1: store64(<statebytes=ptr#1,flip(<r0=int64#1)); // asm 2: store64(<statebytes=p0,flip(<r0=u0)); store64(p0,flip(u0)); // qhasm: mem64[statebytes+8] = flip r1 // asm 1: store64(<statebytes=ptr#1+8,flip(<r1=int64#2)); // asm 2: store64(<statebytes=p0+8,flip(<r1=u1)); store64(p0+8,flip(u1)); // qhasm: mem64[statebytes+16] = flip r2 // asm 1: store64(<statebytes=ptr#1+16,flip(<r2=int64#3)); // asm 2: store64(<statebytes=p0+16,flip(<r2=u2)); store64(p0+16,flip(u2)); // qhasm: mem64[statebytes+24] = flip r3 // asm 1: store64(<statebytes=ptr#1+24,flip(<r3=int64#4)); // asm 2: store64(<statebytes=p0+24,flip(<r3=u3)); store64(p0+24,flip(u3)); // qhasm: r4 = state4 // asm 1: >r4=int64#1 = <state4=stack64#5; // asm 2: >r4=u0 = <state4=m4; u0 = m4; // qhasm: r5 = state5 // asm 1: >r5=int64#2 = <state5=stack64#6; // asm 2: >r5=u1 = <state5=m5; u1 = m5; // qhasm: r6 = state6 // asm 1: >r6=int64#3 = <state6=stack64#7; // asm 2: >r6=u2 = <state6=m6; u2 = m6; // qhasm: r7 = state7 // asm 1: >r7=int64#4 = <state7=stack64#8; // asm 2: >r7=u3 = <state7=m7; u3 = m7; // qhasm: r4 = reverse flip r4 // asm 1: >r4=int64#1 = reverse(flip(<r4=int64#1)); // asm 2: >r4=u0 = reverse(flip(<r4=u0)); u0 = reverse(flip(u0)); // qhasm: r5 = reverse flip r5 // asm 1: >r5=int64#2 = reverse(flip(<r5=int64#2)); // asm 2: >r5=u1 = reverse(flip(<r5=u1)); u1 = reverse(flip(u1)); // qhasm: r6 = reverse flip r6 // asm 1: >r6=int64#3 = reverse(flip(<r6=int64#3)); // asm 2: >r6=u2 = reverse(flip(<r6=u2)); u2 = reverse(flip(u2)); // qhasm: r7 = reverse flip r7 // asm 1: >r7=int64#4 = reverse(flip(<r7=int64#4)); // asm 2: >r7=u3 = reverse(flip(<r7=u3)); u3 = reverse(flip(u3)); // qhasm: mem64[statebytes+32] = flip r4 // asm 1: store64(<statebytes=ptr#1+32,flip(<r4=int64#1)); // asm 2: store64(<statebytes=p0+32,flip(<r4=u0)); store64(p0+32,flip(u0)); // qhasm: mem64[statebytes+40] = flip r5 // asm 1: store64(<statebytes=ptr#1+40,flip(<r5=int64#2)); // asm 2: store64(<statebytes=p0+40,flip(<r5=u1)); store64(p0+40,flip(u1)); // qhasm: mem64[statebytes+48] = flip r6 // asm 1: store64(<statebytes=ptr#1+48,flip(<r6=int64#3)); // asm 2: store64(<statebytes=p0+48,flip(<r6=u2)); store64(p0+48,flip(u2)); // qhasm: mem64[statebytes+56] = flip r7 // asm 1: store64(<statebytes=ptr#1+56,flip(<r7=int64#4)); // asm 2: store64(<statebytes=p0+56,flip(<r7=u3)); store64(p0+56,flip(u3)); // qhasm: inlen += 128 // asm 1: <inlen=int32#1 += 128; // asm 2: <inlen=i0 += 128; i0 += 128; // qhasm: popreturn inlen return i0; }