//////////////////////////////////////////////////////////// // ausgerollte if,or Schleife void deinterleave2( uint32_t in, uint16_t* odd_p, uint16_t* even_p) { 12e: ef 92 push r14 130: ff 92 push r15 132: 0f 93 push r16 134: 1f 93 push r17 136: cf 93 push r28 138: df 93 push r29 13a: 7b 01 movw r14, r22 13c: 8c 01 movw r16, r24 13e: fa 01 movw r30, r20 140: e9 01 movw r28, r18 142: ab 01 movw r20, r22 144: 41 70 andi r20, 0x01 ; 1 146: 50 70 andi r21, 0x00 ; 0 148: dc 01 movw r26, r24 14a: cb 01 movw r24, r22 14c: b6 95 lsr r27 14e: a7 95 ror r26 150: 97 95 ror r25 152: 87 95 ror r24 154: 9c 01 movw r18, r24 156: 21 70 andi r18, 0x01 ; 1 158: 30 70 andi r19, 0x00 ; 0 uint16_t odd = 0; uint16_t even = 0; if( in & 1UL<<0 ) odd |= 1UL<<0; if( in & 1UL<<1 ) even |= 1UL<<0; if( in & 1UL<<2 ) odd |= 1UL<<1; 15a: e2 fc sbrc r14, 2 15c: 42 60 ori r20, 0x02 ; 2 if( in & 1UL<<3 ) even |= 1UL<<1; 15e: e3 fc sbrc r14, 3 160: 22 60 ori r18, 0x02 ; 2 if( in & 1UL<<4 ) odd |= 1UL<<2; 162: e4 fc sbrc r14, 4 164: 44 60 ori r20, 0x04 ; 4 if( in & 1UL<<5 ) even |= 1UL<<2; 166: e5 fc sbrc r14, 5 168: 24 60 ori r18, 0x04 ; 4 if( in & 1UL<<6 ) odd |= 1UL<<3; 16a: e6 fc sbrc r14, 6 16c: 48 60 ori r20, 0x08 ; 8 if( in & 1UL<<7 ) even |= 1UL<<3; 16e: e7 fc sbrc r14, 7 170: 28 60 ori r18, 0x08 ; 8 if( in & 1UL<<8 ) odd |= 1UL<<4; 172: f0 fc sbrc r15, 0 174: 40 61 ori r20, 0x10 ; 16 if( in & 1UL<<9 ) even |= 1UL<<4; 176: f1 fc sbrc r15, 1 178: 20 61 ori r18, 0x10 ; 16 if( in & 1UL<<10 ) odd |= 1UL<<5; 17a: f2 fc sbrc r15, 2 17c: 40 62 ori r20, 0x20 ; 32 if( in & 1UL<<11 ) even |= 1UL<<5; 17e: f3 fc sbrc r15, 3 180: 20 62 ori r18, 0x20 ; 32 if( in & 1UL<<12 ) odd |= 1UL<<6; 182: f4 fc sbrc r15, 4 184: 40 64 ori r20, 0x40 ; 64 if( in & 1UL<<13 ) even |= 1UL<<6; 186: f5 fc sbrc r15, 5 188: 20 64 ori r18, 0x40 ; 64 if( in & 1UL<<14 ) odd |= 1UL<<7; 18a: f6 fc sbrc r15, 6 18c: 40 68 ori r20, 0x80 ; 128 if( in & 1UL<<15 ) even |= 1UL<<7; 18e: c7 01 movw r24, r14 190: 80 70 andi r24, 0x00 ; 0 192: 90 78 andi r25, 0x80 ; 128 194: 89 2b or r24, r25 196: 09 f0 breq .+2 ; 0x19a 198: 20 68 ori r18, 0x80 ; 128 if( in & 1UL<<16 ) odd |= 1UL<<8; 19a: 00 fd sbrc r16, 0 19c: 51 60 ori r21, 0x01 ; 1 if( in & 1UL<<17 ) even |= 1UL<<8; 19e: 01 fd sbrc r16, 1 1a0: 31 60 ori r19, 0x01 ; 1 if( in & 1UL<<18 ) odd |= 1UL<<9; 1a2: 02 fd sbrc r16, 2 1a4: 52 60 ori r21, 0x02 ; 2 if( in & 1UL<<19 ) even |= 1UL<<9; 1a6: 03 fd sbrc r16, 3 1a8: 32 60 ori r19, 0x02 ; 2 if( in & 1UL<<20 ) odd |= 1UL<<10; 1aa: 04 fd sbrc r16, 4 1ac: 54 60 ori r21, 0x04 ; 4 if( in & 1UL<<21 ) even |= 1UL<<10; 1ae: 05 fd sbrc r16, 5 1b0: 34 60 ori r19, 0x04 ; 4 if( in & 1UL<<22 ) odd |= 1UL<<11; 1b2: 06 fd sbrc r16, 6 1b4: 58 60 ori r21, 0x08 ; 8 if( in & 1UL<<23 ) even |= 1UL<<11; 1b6: 07 fd sbrc r16, 7 1b8: 38 60 ori r19, 0x08 ; 8 if( in & 1UL<<24 ) odd |= 1UL<<12; 1ba: 10 fd sbrc r17, 0 1bc: 50 61 ori r21, 0x10 ; 16 if( in & 1UL<<25 ) even |= 1UL<<12; 1be: 11 fd sbrc r17, 1 1c0: 30 61 ori r19, 0x10 ; 16 if( in & 1UL<<26 ) odd |= 1UL<<13; 1c2: 12 fd sbrc r17, 2 1c4: 50 62 ori r21, 0x20 ; 32 if( in & 1UL<<27 ) even |= 1UL<<13; 1c6: 13 fd sbrc r17, 3 1c8: 30 62 ori r19, 0x20 ; 32 if( in & 1UL<<28 ) odd |= 1UL<<14; 1ca: 14 fd sbrc r17, 4 1cc: 50 64 ori r21, 0x40 ; 64 if( in & 1UL<<29 ) even |= 1UL<<14; 1ce: 15 fd sbrc r17, 5 1d0: 30 64 ori r19, 0x40 ; 64 if( in & 1UL<<30 ) odd |= 1UL<<15; 1d2: 16 fd sbrc r17, 6 1d4: 50 68 ori r21, 0x80 ; 128 if( in & 1UL<<31 ) even |= 1UL<<15; 1d6: 17 fd sbrc r17, 7 1d8: 30 68 ori r19, 0x80 ; 128 *odd_p = odd; 1da: 51 83 std Z+1, r21 ; 0x01 1dc: 40 83 st Z, r20 *even_p = even; 1de: 39 83 std Y+1, r19 ; 0x01 1e0: 28 83 st Y, r18 } 1e2: df 91 pop r29 1e4: cf 91 pop r28 1e6: 1f 91 pop r17 1e8: 0f 91 pop r16 1ea: ff 90 pop r15 1ec: ef 90 pop r14 1ee: 08 95 ret