gen/genacorn.c
static void extract_two_parts(int reg1, int reg2, int bit1, int bit2)
{
    const LFSR *lfsr = find_lfsr(bit1);
    int offset, count;
    bit1 -= lfsr->start;
    bit2 -= lfsr->start;
    offset = lfsr->offsetl + lfsr_offset + (bit2 / 8);
    insn_printf("ldd r%d,Z+%d", reg1, offset + 2);
    insn_printf("ldd r%d,Z+%d", reg2, offset + 1);
    insn_printf("ldd r%d,Z+%d", temp_reg, offset);
    count = 8 - (bit1 % 8);
    shift_left_3_regs(reg1, reg2, temp_reg, count);
    count = bit1 - (bit2 + 8);
    shift_left_2_regs(reg2, temp_reg, count);
}
// Extracts two parts from the state as bytes.  Both parts are
// assumed to be within the same 3-byte region within the state
// and that they don't overlap.  We also assume that bit1 > bit2.
Extracts two parts from the state as bytes.  Both parts are
assumed to be within the same 3-byte region within the state
and that they don't overlap.  We also assume that bit1 > bit2.
Extracts two parts from the state as bytes . Both parts are assumed to be within the same 3 - byte region within the state and that they don ' t overlap . We also assume that bit1 > bit2 .
static void extract_two_parts(int reg1, int reg2, int bit1, int bit2)
{
    const LFSR *lfsr = find_lfsr(bit1);
    int offset, count;
    bit1 -= lfsr->start;
    bit2 -= lfsr->start;
    offset = lfsr->offsetl + lfsr_offset + (bit2 / 8);
    insn_printf("ldd r%d,Z+%d", reg1, offset + 2);
    insn_printf("ldd r%d,Z+%d", reg2, offset + 1);
    insn_printf("ldd r%d,Z+%d", temp_reg, offset);
    count = 8 - (bit1 % 8);
    shift_left_3_regs(reg1, reg2, temp_reg, count);
    count = bit1 - (bit2 + 8);
    shift_left_2_regs(reg2, temp_reg, count);
}
static void extract_two_parts ( int reg1 , int reg2 , int bit1 , int bit2 ) { const LFSR * lfsr = find_lfsr ( bit1 ) ; int offset , count ; bit1 -= lfsr -> start ; bit2 -= lfsr -> start ; offset = lfsr -> offsetl + lfsr_offset + ( bit2 / 8 ) ; insn_printf ( " " , reg1 , offset + 2 ) ; insn_printf ( " " , reg2 , offset + 1 ) ; insn_printf ( " " , temp_reg , offset ) ; count = 8 - ( bit1 % 8 ) ; shift_left_3_regs ( reg1 , reg2 , temp_reg , count ) ; count = bit1 - ( bit2 + 8 ) ; shift_left_2_regs ( reg2 , temp_reg , count ) ; }
Extracts two parts from the state as bytes.
Extracts two parts from the state as bytes .