]> git.cryptolib.org Git - arm-crypto-lib.git/blobdiff - bmw/bmw_small-tinyasm.ps
optimized f0 function
[arm-crypto-lib.git] / bmw / bmw_small-tinyasm.ps
diff --git a/bmw/bmw_small-tinyasm.ps b/bmw/bmw_small-tinyasm.ps
deleted file mode 100644 (file)
index 56409c5..0000000
+++ /dev/null
@@ -1,3456 +0,0 @@
-%!PS-Adobe-3.0
-%%BoundingBox: 18 36 577 806
-%%Title: Enscript Output
-%%Creator: GNU enscript 1.6.4
-%%CreationDate: Tue Apr  6 12:07:47 2010
-%%Orientation: Landscape
-%%Pages: (atend)
-%%DocumentMedia: A4 595 842 0 () ()
-%%DocumentNeededResources: (atend)
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset Enscript-Prolog 1.6 4
-%
-% Procedures.
-%
-
-/_S {  % save current state
-  /_s save def
-} def
-/_R {  % restore from saved state
-  _s restore
-} def
-
-/S {   % showpage protecting gstate
-  gsave
-  showpage
-  grestore
-} bind def
-
-/MF {  % fontname newfontname -> -     make a new encoded font
-  /newfontname exch def
-  /fontname exch def
-
-  /fontdict fontname findfont def
-  /newfont fontdict maxlength dict def
-
-  fontdict {
-    exch
-    dup /FID eq {
-      % skip FID pair
-      pop pop
-    } {
-      % copy to the new font dictionary
-      exch newfont 3 1 roll put
-    } ifelse
-  } forall
-
-  newfont /FontName newfontname put
-
-  % insert only valid encoding vectors
-  encoding_vector length 256 eq {
-    newfont /Encoding encoding_vector put
-  } if
-
-  newfontname newfont definefont pop
-} def
-
-/MF_PS { % fontname newfontname -> -   make a new font preserving its enc
-  /newfontname exch def
-  /fontname exch def
-
-  /fontdict fontname findfont def
-  /newfont fontdict maxlength dict def
-
-  fontdict {
-    exch
-    dup /FID eq {
-      % skip FID pair
-      pop pop
-    } {
-      % copy to the new font dictionary
-      exch newfont 3 1 roll put
-    } ifelse
-  } forall
-
-  newfont /FontName newfontname put
-
-  newfontname newfont definefont pop
-} def
-
-/SF { % fontname width height -> -     set a new font
-  /height exch def
-  /width exch def
-
-  findfont
-  [width 0 0 height 0 0] makefont setfont
-} def
-
-/SUF { % fontname width height -> -    set a new user font
-  /height exch def
-  /width exch def
-
-  /F-gs-user-font MF
-  /F-gs-user-font width height SF
-} def
-
-/SUF_PS { % fontname width height -> - set a new user font preserving its enc
-  /height exch def
-  /width exch def
-
-  /F-gs-user-font MF_PS
-  /F-gs-user-font width height SF
-} def
-
-/M {moveto} bind def
-/s {show} bind def
-
-/Box { % x y w h -> -                  define box path
-  /d_h exch def /d_w exch def /d_y exch def /d_x exch def
-  d_x d_y  moveto
-  d_w 0 rlineto
-  0 d_h rlineto
-  d_w neg 0 rlineto
-  closepath
-} def
-
-/bgs { % x y height blskip gray str -> -       show string with bg color
-  /str exch def
-  /gray exch def
-  /blskip exch def
-  /height exch def
-  /y exch def
-  /x exch def
-
-  gsave
-    x y blskip sub str stringwidth pop height Box
-    gray setgray
-    fill
-  grestore
-  x y M str s
-} def
-
-/bgcs { % x y height blskip red green blue str -> -  show string with bg color
-  /str exch def
-  /blue exch def
-  /green exch def
-  /red exch def
-  /blskip exch def
-  /height exch def
-  /y exch def
-  /x exch def
-
-  gsave
-    x y blskip sub str stringwidth pop height Box
-    red green blue setrgbcolor
-    fill
-  grestore
-  x y M str s
-} def
-
-% Highlight bars.
-/highlight_bars {      % nlines lineheight output_y_margin gray -> -
-  gsave
-    setgray
-    /ymarg exch def
-    /lineheight exch def
-    /nlines exch def
-
-    % This 2 is just a magic number to sync highlight lines to text.
-    0 d_header_y ymarg sub 2 sub translate
-
-    /cw d_output_w cols div def
-    /nrows d_output_h ymarg 2 mul sub lineheight div cvi def
-
-    % for each column
-    0 1 cols 1 sub {
-      cw mul /xp exch def
-
-      % for each rows
-      0 1 nrows 1 sub {
-        /rn exch def
-        rn lineheight mul neg /yp exch def
-        rn nlines idiv 2 mod 0 eq {
-         % Draw highlight bar.  4 is just a magic indentation.
-         xp 4 add yp cw 8 sub lineheight neg Box fill
-       } if
-      } for
-    } for
-
-  grestore
-} def
-
-% Line highlight bar.
-/line_highlight {      % x y width height gray -> -
-  gsave
-    /gray exch def
-    Box gray setgray fill
-  grestore
-} def
-
-% Column separator lines.
-/column_lines {
-  gsave
-    .1 setlinewidth
-    0 d_footer_h translate
-    /cw d_output_w cols div def
-    1 1 cols 1 sub {
-      cw mul 0 moveto
-      0 d_output_h rlineto stroke
-    } for
-  grestore
-} def
-
-% Column borders.
-/column_borders {
-  gsave
-    .1 setlinewidth
-    0 d_footer_h moveto
-    0 d_output_h rlineto
-    d_output_w 0 rlineto
-    0 d_output_h neg rlineto
-    closepath stroke
-  grestore
-} def
-
-% Do the actual underlay drawing
-/draw_underlay {
-  ul_style 0 eq {
-    ul_str true charpath stroke
-  } {
-    ul_str show
-  } ifelse
-} def
-
-% Underlay
-/underlay {    % - -> -
-  gsave
-    0 d_page_h translate
-    d_page_h neg d_page_w atan rotate
-
-    ul_gray setgray
-    ul_font setfont
-    /dw d_page_h dup mul d_page_w dup mul add sqrt def
-    ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto
-    draw_underlay
-  grestore
-} def
-
-/user_underlay {       % - -> -
-  gsave
-    ul_x ul_y translate
-    ul_angle rotate
-    ul_gray setgray
-    ul_font setfont
-    0 0 ul_h_ptsize 2 div sub moveto
-    draw_underlay
-  grestore
-} def
-
-% Page prefeed
-/page_prefeed {                % bool -> -
-  statusdict /prefeed known {
-    statusdict exch /prefeed exch put
-  } {
-    pop
-  } ifelse
-} def
-
-% Wrapped line markers
-/wrapped_line_mark {   % x y charwith charheight type -> -
-  /type exch def
-  /h exch def
-  /w exch def
-  /y exch def
-  /x exch def
-
-  type 2 eq {
-    % Black boxes (like TeX does)
-    gsave
-      0 setlinewidth
-      x w 4 div add y M
-      0 h rlineto w 2 div 0 rlineto 0 h neg rlineto
-      closepath fill
-    grestore
-  } {
-    type 3 eq {
-      % Small arrows
-      gsave
-        .2 setlinewidth
-        x w 2 div add y h 2 div add M
-        w 4 div 0 rlineto
-        x w 4 div add y lineto stroke
-
-        x w 4 div add w 8 div add y h 4 div add M
-        x w 4 div add y lineto
-       w 4 div h 8 div rlineto stroke
-      grestore
-    } {
-      % do nothing
-    } ifelse
-  } ifelse
-} def
-
-% EPSF import.
-
-/BeginEPSF {
-  /b4_Inc_state save def               % Save state for cleanup
-  /dict_count countdictstack def       % Count objects on dict stack
-  /op_count count 1 sub def            % Count objects on operand stack
-  userdict begin
-  /showpage { } def
-  0 setgray 0 setlinecap
-  1 setlinewidth 0 setlinejoin
-  10 setmiterlimit [ ] 0 setdash newpath
-  /languagelevel where {
-    pop languagelevel
-    1 ne {
-      false setstrokeadjust false setoverprint
-    } if
-  } if
-} bind def
-
-/EndEPSF {
-  count op_count sub { pos } repeat    % Clean up stacks
-  countdictstack dict_count sub { end } repeat
-  b4_Inc_state restore
-} bind def
-
-% Check PostScript language level.
-/languagelevel where {
-  pop /gs_languagelevel languagelevel def
-} {
-  /gs_languagelevel 1 def
-} ifelse
-%%EndResource
-%%BeginResource: procset Enscript-Encoding-88591 1.6 4
-/encoding_vector [
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/space         /exclam         /quotedbl       /numbersign     
-/dollar        /percent        /ampersand      /quoteright     
-/parenleft     /parenright     /asterisk       /plus           
-/comma         /hyphen         /period         /slash          
-/zero          /one            /two            /three          
-/four          /five           /six            /seven          
-/eight         /nine           /colon          /semicolon      
-/less          /equal          /greater        /question       
-/at            /A              /B              /C              
-/D             /E              /F              /G              
-/H             /I              /J              /K              
-/L             /M              /N              /O              
-/P             /Q              /R              /S              
-/T             /U              /V              /W              
-/X             /Y              /Z              /bracketleft    
-/backslash     /bracketright   /asciicircum    /underscore     
-/quoteleft     /a              /b              /c              
-/d             /e              /f              /g              
-/h             /i              /j              /k              
-/l             /m              /n              /o              
-/p             /q              /r              /s              
-/t             /u              /v              /w              
-/x             /y              /z              /braceleft      
-/bar           /braceright     /tilde          /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/.notdef       /.notdef        /.notdef        /.notdef        
-/space         /exclamdown     /cent           /sterling       
-/currency      /yen            /brokenbar      /section        
-/dieresis      /copyright      /ordfeminine    /guillemotleft  
-/logicalnot    /hyphen         /registered     /macron         
-/degree        /plusminus      /twosuperior    /threesuperior  
-/acute         /mu             /paragraph      /bullet         
-/cedilla       /onesuperior    /ordmasculine   /guillemotright 
-/onequarter    /onehalf        /threequarters  /questiondown   
-/Agrave        /Aacute         /Acircumflex    /Atilde         
-/Adieresis     /Aring          /AE             /Ccedilla       
-/Egrave        /Eacute         /Ecircumflex    /Edieresis      
-/Igrave        /Iacute         /Icircumflex    /Idieresis      
-/Eth           /Ntilde         /Ograve         /Oacute         
-/Ocircumflex   /Otilde         /Odieresis      /multiply       
-/Oslash        /Ugrave         /Uacute         /Ucircumflex    
-/Udieresis     /Yacute         /Thorn          /germandbls     
-/agrave        /aacute         /acircumflex    /atilde         
-/adieresis     /aring          /ae             /ccedilla       
-/egrave        /eacute         /ecircumflex    /edieresis      
-/igrave        /iacute         /icircumflex    /idieresis      
-/eth           /ntilde         /ograve         /oacute         
-/ocircumflex   /otilde         /odieresis      /divide         
-/oslash        /ugrave         /uacute         /ucircumflex    
-/udieresis     /yacute         /thorn          /ydieresis      
-] def
-%%EndResource
-%%EndProlog
-%%BeginSetup
-%%IncludeResource: font Courier-Bold
-%%IncludeResource: font Courier
-/HFpt_w 10 def
-/HFpt_h 10 def
-/Courier-Bold /HF-gs-font MF
-/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def
-/Courier /F-gs-font MF
-/F-gs-font 7 7 SF
-/#copies 1 def
-% Pagedevice definitions:
-gs_languagelevel 1 gt {
-  <<
-    /PageSize [595 842] 
-  >> setpagedevice
-} if
-%%BeginResource: procset Enscript-Header-simple 1.6 4
-
-/do_header {   % print default simple header
-  gsave
-    d_header_x d_header_y HFpt_h 3 div add translate
-
-    HF setfont
-    user_header_p {
-      5 0 moveto user_header_left_str show
-
-      d_header_w user_header_center_str stringwidth pop sub 2 div
-      0 moveto user_header_center_str show
-
-      d_header_w user_header_right_str stringwidth pop sub 5 sub
-      0 moveto user_header_right_str show
-    } {
-      5 0 moveto fname show
-      45 0 rmoveto fmodstr show
-      45 0 rmoveto pagenumstr show
-    } ifelse
-
-  grestore
-} def
-%%EndResource
-/d_page_w 770 def
-/d_page_h 559 def
-/d_header_x 0 def
-/d_header_y 544 def
-/d_header_w 770 def
-/d_header_h 15 def
-/d_footer_x 0 def
-/d_footer_y 0 def
-/d_footer_w 770 def
-/d_footer_h 0 def
-/d_output_w 770 def
-/d_output_h 544 def
-/cols 3 def
-%%EndSetup
-%%Page: (1) 1
-%%BeginPageSetup
-_S
-90 rotate
-36 -577 translate
-/pagenum 1 def
-/fname (bmw_small-tinyasm.S) def
-/fdir () def
-/ftail (bmw_small-tinyasm.S) def
-% User defined strings:
-/fmodstr (Mo Apr 05 09:57:29 2010) def
-/pagenumstr (1) def
-/user_header_p false def
-/user_footer_p false def
-%%EndPageSetup
-column_lines
-column_borders
-do_header
-5 534 M
-(/* bmw_small-tinyasm.S */) s
-5 526 M
-(/*) s
-5 518 M
-(    This file is part of the AVR-Crypto-Lib.) s
-5 510 M
-(    Copyright \(C\) 2009  Daniel Otte \(daniel.otte@rub.de\)) s
-5 494 M
-(    This program is free software: you can redistribute it) s
-5 486 M
-( and/or modify) s
-5 478 M
-(    it under the terms of the GNU General Public License a) s
-5 470 M
-(s published by) s
-5 462 M
-(    the Free Software Foundation, either version 3 of the ) s
-5 454 M
-(License, or) s
-5 446 M
-(    \(at your option\) any later version.) s
-5 430 M
-(    This program is distributed in the hope that it will b) s
-5 422 M
-(e useful,) s
-5 414 M
-(    but WITHOUT ANY WARRANTY; without even the implied war) s
-5 406 M
-(ranty of) s
-5 398 M
-(    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  ) s
-5 390 M
-(See the) s
-5 382 M
-(    GNU General Public License for more details.) s
-5 366 M
-(    You should have received a copy of the GNU General Pub) s
-5 358 M
-(lic License) s
-5 350 M
-(    along with this program.  If not, see <http://www.gnu.) s
-5 342 M
-(org/licenses/>.) s
-5 334 M
-(*/) s
-5 318 M
-(/*) s
-5 310 M
-( * File:        bmw_small-tinyasm.S) s
-5 302 M
-( * Author:      Daniel Otte) s
-5 294 M
-( * Date:        2010-03-28) s
-5 286 M
-( * License:     GPLv3 or later) s
-5 278 M
-( * Description: implementation of BlueMidnightWish) s
-5 270 M
-( *) s
-5 262 M
-( */) s
-5 246 M
-(#include "avr-asm-macros.S") s
-5 230 M
-(/*********************************************************) s
-5 222 M
-(*********************/) s
-5 214 M
-(/*) s
-5 206 M
-(  param a: r22:r23:r24:r25) s
-5 198 M
-(  param s: r20) s
-5 190 M
-(*/) s
-5 182 M
-(shiftleft32:) s
-5 174 M
-(        clr r0) s
-5 166 M
-(        cpi r20, 8) s
-5 158 M
-(        brlo bitrotateleft_1) s
-5 150 M
-(        mov r25, r24) s
-5 142 M
-(        mov r24, r23) s
-5 134 M
-(        mov r23, r22) s
-5 126 M
-(        clr r22) s
-5 118 M
-(        subi r20, 8) s
-5 110 M
-(        rjmp shiftleft32) s
-5 94 M
-(/*********************************************************) s
-5 86 M
-(*********************/) s
-5 78 M
-(/*) s
-5 70 M
-(  param a: r22:r23:r24:r25) s
-5 62 M
-(  param s: r20) s
-5 54 M
-(*/) s
-5 46 M
-(shiftright32:) s
-5 38 M
-(        cpi r20, 8) s
-5 30 M
-(        brlo bitshiftright) s
-5 22 M
-(        mov r22, r23) s
-5 14 M
-(        mov r23, r24) s
-5 6 M
-(        mov r24, r25) s
-261.667 534 M
-(        clr r25) s
-261.667 526 M
-(        subi r20, 8) s
-261.667 518 M
-(        rjmp shiftright32) s
-261.667 510 M
-(bitshiftright:) s
-261.667 502 M
-(        tst r20) s
-261.667 494 M
-(        breq 20f) s
-261.667 486 M
-(10:     lsr r25) s
-261.667 478 M
-(        ror r24) s
-261.667 470 M
-(        ror r23) s
-261.667 462 M
-(        ror r22) s
-261.667 454 M
-(        dec r20) s
-261.667 446 M
-(        brne 10b) s
-261.667 438 M
-(20: ret) s
-261.667 422 M
-(/*********************************************************) s
-261.667 414 M
-(*********************/) s
-261.667 406 M
-(/*) s
-261.667 398 M
-(  param a: r22:r23:r24:r25) s
-261.667 390 M
-(  param s: r20) s
-261.667 382 M
-(*/) s
-261.667 374 M
-(rotateleft32:) s
-261.667 366 M
-(        cpi r20, 8) s
-261.667 358 M
-(        brlo bitrotateleft) s
-261.667 350 M
-(        mov r0, r25) s
-261.667 342 M
-(        mov r25, r24) s
-261.667 334 M
-(        mov r24, r23) s
-261.667 326 M
-(        mov r23, r22) s
-261.667 318 M
-(        mov r22, r0) s
-261.667 310 M
-(        subi r20, 8) s
-261.667 302 M
-(        rjmp rotateleft32) s
-261.667 294 M
-(bitrotateleft:) s
-261.667 286 M
-(    mov r0, r25) s
-261.667 278 M
-(bitrotateleft_1:) s
-261.667 270 M
-(        tst r20) s
-261.667 262 M
-(        breq 20f) s
-261.667 254 M
-(10:) s
-261.667 246 M
-(        lsl r0) s
-261.667 238 M
-(        rol r22) s
-261.667 230 M
-(        rol r23) s
-261.667 222 M
-(        rol r24) s
-261.667 214 M
-(        rol r25) s
-261.667 206 M
-(        dec r20) s
-261.667 198 M
-(        brne 10b) s
-261.667 190 M
-(20: ret) s
-261.667 166 M
-(/*********************************************************) s
-261.667 158 M
-(*********************/) s
-261.667 142 M
-(s_table:) s
-261.667 134 M
-(s0:  .byte 1, 3, 4,19) s
-261.667 126 M
-(s1:  .byte 1, 2, 8,23) s
-261.667 118 M
-(s2:  .byte 2, 1,12,25) s
-261.667 110 M
-(s3:  .byte 2, 2,15,29) s
-261.667 102 M
-(s4:  .byte 1, 0, 0, 0) s
-261.667 94 M
-(s5:  .byte 2, 0, 0, 0) s
-261.667 78 M
-(eor_r22_in_r16:) s
-261.667 70 M
-(        eor r16, r22) s
-261.667 62 M
-(        eor r17, r23) s
-261.667 54 M
-(        eor r18, r24) s
-261.667 46 M
-(        eor r19, r25) s
-261.667 38 M
-(        ret) s
-261.667 22 M
-(/*) s
-261.667 14 M
-(  param x: r22:r23:r24:25) s
-261.667 6 M
-(  param s: r20) s
-518.333 534 M
-(*/) s
-518.333 526 M
-(sn:) s
-518.333 518 M
-(        push_range 2, 5) s
-518.333 510 M
-(        push r17) s
-518.333 502 M
-(        push r19) s
-518.333 494 M
-(        ldi r30, lo8\(s_table\)) s
-518.333 486 M
-(        ldi r31, hi8\(s_table\)) s
-518.333 478 M
-(        lsl r20) s
-518.333 470 M
-(        lsl r20) s
-518.333 462 M
-(        add r30, r20) s
-518.333 454 M
-(        adc r31, r1) s
-518.333 446 M
-(        movw r2, r22) s
-518.333 438 M
-(        movw r4, r24) s
-518.333 430 M
-(        lpm r20, Z+) s
-518.333 422 M
-(        rcall shiftright32) s
-518.333 414 M
-(        movw r16, r22) s
-518.333 406 M
-(        movw r18, r24) s
-518.333 398 M
-(;---) s
-518.333 390 M
-(        movw r22, r2) s
-518.333 382 M
-(        movw r24, r4) s
-518.333 374 M
-(        lpm r20, Z+) s
-518.333 366 M
-(        rcall shiftleft32) s
-518.333 358 M
-(        rcall eor_r22_in_r16) s
-518.333 350 M
-(;---) s
-518.333 342 M
-(        movw r22, r2) s
-518.333 334 M
-(        movw r24, r4) s
-518.333 326 M
-(        lpm r20, Z+) s
-518.333 318 M
-(        rcall rotateleft32) s
-518.333 310 M
-(        rcall eor_r22_in_r16) s
-518.333 302 M
-(;---) s
-518.333 294 M
-(        movw r22, r2) s
-518.333 286 M
-(        movw r24, r4) s
-518.333 278 M
-(        lpm r20, Z+) s
-518.333 270 M
-(        rcall rotateleft32) s
-518.333 262 M
-(        eor r22, r16) s
-518.333 254 M
-(        eor r23, r17) s
-518.333 246 M
-(        eor r24, r18) s
-518.333 238 M
-(        eor r25, r19) s
-518.333 230 M
-(        pop r19) s
-518.333 222 M
-(        pop r17) s
-518.333 214 M
-(        pop_range 2, 5) s
-518.333 206 M
-(        ret) s
-518.333 190 M
-(/*********************************************************) s
-518.333 182 M
-(*********************/) s
-518.333 174 M
-(/*) s
-518.333 166 M
-(  param dest: r26:r27 \(X\)) s
-518.333 158 M
-(  param src:  r30:r31 \(Z\)) s
-518.333 150 M
-(  param len:  r20) s
-518.333 142 M
-(*/) s
-518.333 134 M
-(memxor_short:) s
-518.333 126 M
-(;       tst r20) s
-518.333 118 M
-(;       breq memxor_exit) s
-518.333 110 M
-(10: ld r21, X) s
-518.333 102 M
-(        ld r22, Z+) s
-518.333 94 M
-(        eor r21, r22) s
-518.333 86 M
-(        st X+, r21) s
-518.333 78 M
-(        dec r20) s
-518.333 70 M
-(        brne 10b) s
-518.333 62 M
-(memxor_exit:) s
-518.333 54 M
-(        ret) s
-518.333 38 M
-(/*********************************************************) s
-518.333 30 M
-(*********************/) s
-518.333 22 M
-(q0 = 2) s
-518.333 14 M
-(q1 = 3) s
-518.333 6 M
-(h0 = 4) s
-_R
-S
-%%Page: (2) 2
-%%BeginPageSetup
-_S
-90 rotate
-36 -577 translate
-/pagenum 2 def
-/fname (bmw_small-tinyasm.S) def
-/fdir () def
-/ftail (bmw_small-tinyasm.S) def
-% User defined strings:
-/fmodstr (Mo Apr 05 09:57:29 2010) def
-/pagenumstr (2) def
-/user_header_p false def
-/user_footer_p false def
-%%EndPageSetup
-column_lines
-column_borders
-do_header
-5 534 M
-(h1 = 5) s
-5 526 M
-(m0 = 6) s
-5 518 M
-(m1 = 7) s
-5 502 M
-(add_hx_to_w:) s
-5 494 M
-(        movw r26, h0) s
-5 486 M
-(        add r26, r16) s
-5 478 M
-(        adc r27, r1) s
-5 470 M
-(        ld r22, Y) s
-5 462 M
-(        ldd r23, Y+1) s
-5 454 M
-(        ldd r24, Y+2) s
-5 446 M
-(        ldd r25, Y+3) s
-5 438 M
-(        lsl r20) s
-5 430 M
-(        rol r21) s
-5 422 M
-(        brcs 30f) s
-5 414 M
-(        /* addition */) s
-5 406 M
-(        ld r0, X+) s
-5 398 M
-(        add r22, r0) s
-5 390 M
-(        ld r0, X+) s
-5 382 M
-(        adc r23, r0) s
-5 374 M
-(        ld r0, X+) s
-5 366 M
-(        adc r24, r0) s
-5 358 M
-(        ld r0, X+) s
-5 350 M
-(        adc r25, r0) s
-5 342 M
-(        rjmp 50f) s
-5 334 M
-(30: /* substract */) s
-5 326 M
-(        ld r0, X+) s
-5 318 M
-(        sub r22, r0) s
-5 310 M
-(        ld r0, X+) s
-5 302 M
-(        sbc r23, r0) s
-5 294 M
-(        ld r0, X+) s
-5 286 M
-(        sbc r24, r0) s
-5 278 M
-(        ld r0, X+) s
-5 270 M
-(        sbc r25, r0) s
-5 262 M
-(50:) s
-5 254 M
-(        st Y+, r22) s
-5 246 M
-(        st Y+, r23) s
-5 238 M
-(        st Y+, r24) s
-5 230 M
-(        st Y+, r25) s
-5 222 M
-(        ret) s
-5 206 M
-(/*********************************************************) s
-5 198 M
-(*********************/) s
-5 190 M
-(load32_from_X:) s
-5 182 M
-(        ld r22, X+) s
-5 174 M
-(        ld r23, X+) s
-5 166 M
-(        ld r24, X+) s
-5 158 M
-(        ld r25, X+) s
-5 150 M
-(        ret) s
-5 134 M
-(load32_from_Y:) s
-5 126 M
-(        ld r22, Y+) s
-5 118 M
-(        ld r23, Y+) s
-5 110 M
-(        ld r24, Y+) s
-5 102 M
-(        ld r25, Y+) s
-5 94 M
-(        ret) s
-5 78 M
-(add_X_to_32:) s
-5 70 M
-(        ld r0, X+) s
-5 62 M
-(        add r22, r0) s
-5 54 M
-(        ld r0, X+) s
-5 46 M
-(        adc r23, r0) s
-5 38 M
-(        ld r0, X+) s
-5 30 M
-(        adc r24, r0) s
-5 22 M
-(        ld r0, X+) s
-5 14 M
-(        adc r25, r0) s
-5 6 M
-(        ret) s
-261.667 534 M
-(/*********************************************************) s
-261.667 526 M
-(*********************/) s
-261.667 518 M
-(/*) s
-261.667 510 M
-(  param q:  r28:r29 \(Y\)) s
-261.667 502 M
-(  param h:  r26:r27 \(X\)) s
-261.667 494 M
-(  param m:  r30:r31 \(Z\)) s
-261.667 486 M
-(*/) s
-261.667 470 M
-(f0_hacktable:) s
-261.667 462 M
-(        .byte 0x03, 0x11) s
-261.667 454 M
-(        .byte 0xDD, 0xB3) s
-261.667 446 M
-(        .byte 0x2A, 0x79) s
-261.667 438 M
-(        .byte 0x07, 0xAA) s
-261.667 430 M
-(        .byte 0x51, 0xC2) s
-261.667 422 M
-(f0_indextable:) s
-261.667 414 M
-(        .byte 5*4,7*4,10*4,13*4,14*4) s
-261.667 406 M
-(;       .byte 0 ; just for alignment) s
-261.667 398 M
-(f0_s_table:) s
-261.667 390 M
-(        .byte 0,1,2,3,4) s
-261.667 382 M
-(        .byte 0,1,2,3,4) s
-261.667 374 M
-(        .byte 0,1,2,3,4) s
-261.667 366 M
-(;       .byte 0) s
-261.667 350 M
-(f0:) s
-261.667 342 M
-(        movw h0, r26) s
-261.667 334 M
-(        movw q0, r28) s
-261.667 326 M
-(        movw m0, r30) s
-261.667 318 M
-(;--- DBG) s
-261.667 310 M
-(;       push_range 22, 25) s
-261.667 302 M
-(;       movw r24, r26) s
-261.667 294 M
-(;       ldi r22, 'H') s
-261.667 286 M
-(;       rcall printX) s
-261.667 278 M
-(;       pop_range  22, 25) s
-261.667 270 M
-(;--- END DBG) s
-261.667 262 M
-(;--- DBG) s
-261.667 254 M
-(;       push_range 22, 25) s
-261.667 246 M
-(;       movw r24, r30) s
-261.667 238 M
-(;       ldi r22, 'M') s
-261.667 230 M
-(;       rcall printX) s
-261.667 222 M
-(;       pop_range  22, 25) s
-261.667 214 M
-(;--- END DBG) s
-261.667 206 M
-(        /* xor m into h */) s
-261.667 198 M
-(        ldi r20, 64) s
-261.667 190 M
-(        rcall memxor_short) s
-261.667 182 M
-(        movw r30, m0) s
-261.667 174 M
-(        movw r26, h0) s
-261.667 158 M
-(        /* set q to zero */) s
-261.667 150 M
-(        ldi r22, 64) s
-261.667 142 M
-(10:     st Y+, r1) s
-261.667 134 M
-(        dec r22) s
-261.667 126 M
-(        brne 10b) s
-261.667 118 M
-(        movw r28, q0) s
-261.667 110 M
-(        /* calculate W and store it in Q */) s
-261.667 102 M
-(        ldi r19, 5) s
-261.667 94 M
-(30:) s
-261.667 86 M
-(        ldi r18, 16) s
-261.667 78 M
-(        /* load initial index */) s
-261.667 70 M
-(        ldi r30, lo8\(f0_indextable-1\)) s
-261.667 62 M
-(        ldi r31, hi8\(f0_indextable-1\)) s
-261.667 54 M
-(        add r30, r19) s
-261.667 46 M
-(        adc r31, r1) s
-261.667 38 M
-(        lpm r16, Z) s
-261.667 30 M
-(        /* load values from hacktable */) s
-261.667 22 M
-(        ldi r30, lo8\(f0_hacktable-2\)) s
-261.667 14 M
-(        ldi r31, hi8\(f0_hacktable-2\)) s
-261.667 6 M
-(        lsl r19) s
-518.333 534 M
-(        add r30, r19) s
-518.333 526 M
-(        adc r31, r1) s
-518.333 518 M
-(        lsr r19) s
-518.333 510 M
-(        lpm r21, Z+) s
-518.333 502 M
-(        lpm r20, Z) s
-518.333 494 M
-(40:) s
-518.333 486 M
-(        call add_hx_to_w) s
-518.333 478 M
-(        subi r16, -4) s
-518.333 470 M
-(        andi r16, 0x0f<<2) s
-518.333 462 M
-(        dec r18) s
-518.333 454 M
-(        brne 40b) s
-518.333 446 M
-(        movw r28, q0) s
-518.333 438 M
-(        dec r19) s
-518.333 430 M
-(        brne 30b) s
-518.333 422 M
-(        movw r26, h0) s
-518.333 414 M
-(;--- DBG) s
-518.333 406 M
-(;       push_range 22, 25) s
-518.333 398 M
-(;       movw r24, r28) s
-518.333 390 M
-(;       ldi r22, 'W') s
-518.333 382 M
-(;       rcall printX) s
-518.333 374 M
-(;       pop_range  22, 25) s
-518.333 366 M
-(;--- END DBG) s
-518.333 358 M
-(        /* xor m into h */) s
-518.333 350 M
-(        ldi r20, 64) s
-518.333 342 M
-(        movw r26, h0) s
-518.333 334 M
-(        movw r30, m0) s
-518.333 326 M
-(        rcall memxor_short) s
-518.333 318 M
-(        sbiw r26, 60) s
-518.333 310 M
-(;---) s
-518.333 302 M
-(        ldi r30, lo8\(f0_s_table\)) s
-518.333 294 M
-(        ldi r31, hi8\(f0_s_table\)) s
-518.333 286 M
-(        ldi r21, 15) s
-518.333 278 M
-(        mov r8, r21) s
-518.333 270 M
-(50:) s
-518.333 262 M
-(        ldd r22, Y+0) s
-518.333 254 M
-(        ldd r23, Y+1) s
-518.333 246 M
-(        ldd r24, Y+2) s
-518.333 238 M
-(        ldd r25, Y+3) s
-518.333 230 M
-(        lpm r20, Z+) s
-518.333 222 M
-(        movw r2, r30) s
-518.333 214 M
-(        rcall sn) s
-518.333 206 M
-(        movw r30, r2) s
-518.333 190 M
-(        rcall add_X_to_32) s
-518.333 174 M
-(        st Y+, r22) s
-518.333 166 M
-(        st Y+, r23) s
-518.333 158 M
-(        st Y+, r24) s
-518.333 150 M
-(        st Y+, r25) s
-518.333 142 M
-(        dec r8) s
-518.333 134 M
-(        brne 50b) s
-518.333 126 M
-(;---) s
-518.333 118 M
-(        ldd r22, Y+0) s
-518.333 110 M
-(        ldd r23, Y+1) s
-518.333 102 M
-(        ldd r24, Y+2) s
-518.333 94 M
-(        ldd r25, Y+3) s
-518.333 86 M
-(        clr r20) s
-518.333 78 M
-(        rcall sn) s
-518.333 70 M
-(        movw r30, r2) s
-518.333 62 M
-(        movw r26, h0) s
-518.333 54 M
-(        rcall add_X_to_32) s
-518.333 46 M
-(        sbiw r26, 4) s
-518.333 38 M
-(        std Y+0, r22) s
-518.333 30 M
-(        std Y+1, r23) s
-518.333 22 M
-(        std Y+2, r24) s
-518.333 14 M
-(        std Y+3, r25) s
-518.333 6 M
-(        sbiw r28, 15*4) s
-_R
-S
-%%Page: (3) 3
-%%BeginPageSetup
-_S
-90 rotate
-36 -577 translate
-/pagenum 3 def
-/fname (bmw_small-tinyasm.S) def
-/fdir () def
-/ftail (bmw_small-tinyasm.S) def
-% User defined strings:
-/fmodstr (Mo Apr 05 09:57:29 2010) def
-/pagenumstr (3) def
-/user_header_p false def
-/user_footer_p false def
-%%EndPageSetup
-column_lines
-column_borders
-do_header
-5 534 M
-(        movw r20, h0) s
-5 526 M
-(        movw r22, m0) s
-5 518 M
-(        ret) s
-5 502 M
-(/*********************************************************) s
-5 494 M
-(*********************/) s
-5 478 M
-(const_lut:) s
-5 470 M
-(        .long 0x55555550, 0x5aaaaaa5, 0x5ffffffa, 0x655555) s
-5 462 M
-(4f) s
-5 454 M
-(        .long 0x6aaaaaa4, 0x6ffffff9, 0x7555554e, 0x7aaaaa) s
-5 446 M
-(a3) s
-5 438 M
-(        .long 0x7ffffff8, 0x8555554d, 0x8aaaaaa2, 0x8fffff) s
-5 430 M
-(f7) s
-5 422 M
-(        .long 0x9555554c, 0x9aaaaaa1, 0x9ffffff6, 0xa55555) s
-5 414 M
-(4b) s
-5 398 M
-(/*********************************************************) s
-5 390 M
-(**********************) s
-5 382 M
-(* uint32_t addelment\(uint8_t j, const uint32_t* m, const u) s
-5 374 M
-(int32_t* h\){) s
-5 366 M
-(*       uint32_t r;) s
-5 358 M
-(*       r  = pgm_read_dword\(k_lut+j\);) s
-5 350 M
-(*       r += rotl_addel\(\(\(uint32_t*\)m\)[j&0xf], j+0\);) s
-5 342 M
-(*       r += rotl_addel\(\(\(uint32_t*\)m\)[\(j+3\)&0xf], j+3\);) s
-5 334 M
-(*       r -= rotl_addel\(\(\(uint32_t*\)m\)[\(j+10\)&0xf], j+10\);) s
-5 326 M
-(*       r ^= \(\(uint32_t*\)h\)[\(j+7\)&0xf];) s
-5 318 M
-(*       return r;) s
-5 310 M
-(* }) s
-5 302 M
-(* param j: r24) s
-5 294 M
-(* param m: r22:r23) s
-5 286 M
-(* param h: r20:r21) s
-5 278 M
-(*/) s
-5 270 M
-(j    = 16) s
-5 262 M
-(acc2 =  8) s
-5 254 M
-(acc3 =  9) s
-5 246 M
-(h0   = 10) s
-5 238 M
-(h1   = 11) s
-5 230 M
-(m0   = 12) s
-5 222 M
-(m1   = 13) s
-5 214 M
-(acc0 = 14) s
-5 206 M
-(acc1 = 15) s
-5 190 M
-(add32_to_acc:) s
-5 182 M
-(        add acc0, r22) s
-5 174 M
-(        adc acc1, r23) s
-5 166 M
-(        adc acc2, r24) s
-5 158 M
-(        adc acc3, r25) s
-5 150 M
-(        ret) s
-5 134 M
-(eor32_to_acc:) s
-5 126 M
-(        eor acc0, r22) s
-5 118 M
-(        eor acc1, r23) s
-5 110 M
-(        eor acc2, r24) s
-5 102 M
-(        eor acc3, r25) s
-5 94 M
-(        ret) s
-5 78 M
-(load_acc_from_X:) s
-5 70 M
-(        ld acc0, X+) s
-5 62 M
-(        ld acc1, X+) s
-5 54 M
-(        ld acc2, X+) s
-5 46 M
-(        ld acc3, X+) s
-5 38 M
-(        ret) s
-5 22 M
-(add_acc_to_Z:) s
-5 14 M
-(        ld r0, Z) s
-5 6 M
-(        add r0, acc0) s
-261.667 534 M
-(        st Z+, r0) s
-261.667 526 M
-(        ld r0, Z) s
-261.667 518 M
-(        adc r0, acc1) s
-261.667 510 M
-(        st Z+, r0) s
-261.667 502 M
-(        ld r0, Z) s
-261.667 494 M
-(        adc r0, acc2) s
-261.667 486 M
-(        st Z+, r0) s
-261.667 478 M
-(        ld r0, Z) s
-261.667 470 M
-(        adc r0, acc3) s
-261.667 462 M
-(        st Z+, r0) s
-261.667 454 M
-(        ret) s
-261.667 438 M
-(load_rotate_add_M:) s
-261.667 430 M
-(        andi r20, 0x0f) s
-261.667 422 M
-(        mov r0, r20) s
-261.667 414 M
-(        lsl r0) s
-261.667 406 M
-(        lsl r0) s
-261.667 398 M
-(        movw r26, m0) s
-261.667 390 M
-(        add r26, r0) s
-261.667 382 M
-(        adc r27, r1) s
-261.667 374 M
-(        ld r22, X+) s
-261.667 366 M
-(        ld r23, X+) s
-261.667 358 M
-(        ld r24, X+) s
-261.667 350 M
-(        ld r25, X+) s
-261.667 342 M
-(        inc r20) s
-261.667 334 M
-(        rcall rotateleft32) s
-261.667 326 M
-(        brts 10f) s
-261.667 318 M
-(        rcall add32_to_acc) s
-261.667 310 M
-(        ret) s
-261.667 302 M
-(10:     sub acc0, r22) s
-261.667 294 M
-(        sbc acc1, r23) s
-261.667 286 M
-(        sbc acc2, r24) s
-261.667 278 M
-(        sbc acc3, r25) s
-261.667 270 M
-(        ret) s
-261.667 254 M
-(addelement:) s
-261.667 246 M
-(        mov j, r24) s
-261.667 238 M
-(        movw h0, r20) s
-261.667 230 M
-(        movw m0, r22) s
-261.667 222 M
-(        lsl r24) s
-261.667 214 M
-(        lsl r24) s
-261.667 206 M
-(        mov r28, r24) s
-261.667 198 M
-(        ldi r30, lo8\(const_lut\)) s
-261.667 190 M
-(        ldi r31, hi8\(const_lut\)) s
-261.667 182 M
-(        add r30, r24) s
-261.667 174 M
-(        adc r31, r1) s
-261.667 166 M
-(        lpm acc0, Z+) s
-261.667 158 M
-(        lpm acc1, Z+) s
-261.667 150 M
-(        lpm acc2, Z+) s
-261.667 142 M
-(        lpm acc3, Z+) s
-261.667 134 M
-(        clt) s
-261.667 126 M
-(        mov r20, j) s
-261.667 118 M
-(        rcall load_rotate_add_M) s
-261.667 110 M
-(        mov r20, j) s
-261.667 102 M
-(        subi r20, -3) s
-261.667 94 M
-(        rcall load_rotate_add_M) s
-261.667 86 M
-(        mov r20, j) s
-261.667 78 M
-(        set) s
-261.667 70 M
-(        subi r20, -10) s
-261.667 62 M
-(        rcall load_rotate_add_M) s
-261.667 54 M
-(        lsl j) s
-261.667 46 M
-(        lsl j) s
-261.667 38 M
-(        subi j, -7*4) s
-261.667 30 M
-(        andi j, 0x3f) s
-261.667 22 M
-(        movw r26, h0) s
-261.667 14 M
-(        add r26, j) s
-261.667 6 M
-(        adc r27, r1) s
-518.333 534 M
-(        ld r0, X+) s
-518.333 526 M
-(        eor acc0, r0) s
-518.333 518 M
-(        ld r0, X+) s
-518.333 510 M
-(        eor acc1, r0) s
-518.333 502 M
-(        ld r0, X+) s
-518.333 494 M
-(        eor acc2, r0) s
-518.333 486 M
-(        ld r0, X+) s
-518.333 478 M
-(        eor acc3, r0) s
-518.333 470 M
-(;---) s
-518.333 462 M
-(        ret) s
-518.333 446 M
-(/*********************************************************) s
-518.333 438 M
-(*********************/) s
-518.333 430 M
-(/*) s
-518.333 422 M
-(  param q: r26:r27) s
-518.333 414 M
-(  param m: r22:r23) s
-518.333 406 M
-(  param h: r20:r21) s
-518.333 398 M
-(  param j: r24) s
-518.333 390 M
-(*/) s
-518.333 374 M
-(expand_intro:) s
-518.333 366 M
-(        push_range 20, 27) s
-518.333 358 M
-(;       push r24) s
-518.333 350 M
-(        rcall addelement) s
-518.333 342 M
-(;       pop r24) s
-518.333 334 M
-(        pop_range 20, 27) s
-518.333 326 M
-(        lsl r24) s
-518.333 318 M
-(        lsl r24) s
-518.333 310 M
-(        add r26, r24) s
-518.333 302 M
-(        adc r27, r1) s
-518.333 294 M
-(        ret) s
-518.333 286 M
-(expand1:) s
-518.333 278 M
-(        rcall expand_intro) s
-518.333 270 M
-(        ldi r19, 1) s
-518.333 262 M
-(10:) s
-518.333 254 M
-(        rcall load32_from_X) s
-518.333 246 M
-(        mov r20, r19) s
-518.333 238 M
-(        andi r20, 3) s
-518.333 230 M
-(        rcall sn) s
-518.333 222 M
-(        rcall add32_to_acc) s
-518.333 214 M
-(        inc r19) s
-518.333 206 M
-(        cpi r19, 17) s
-518.333 198 M
-(        brne 10b) s
-518.333 190 M
-(expand1_exit:) s
-518.333 182 M
-(;       adiw r26, 63) s
-518.333 174 M
-(        st X+, acc0) s
-518.333 166 M
-(        st X+, acc1) s
-518.333 158 M
-(        st X+, acc2) s
-518.333 150 M
-(        st X+, acc3) s
-518.333 142 M
-(        ret) s
-518.333 126 M
-(/*********************************************************) s
-518.333 118 M
-(*********************/) s
-518.333 110 M
-(/*) s
-518.333 102 M
-(  param q: r26:r27) s
-518.333 94 M
-(  param m: r22:r23) s
-518.333 86 M
-(  param h: r20:r21) s
-518.333 78 M
-(  param j: r24) s
-518.333 70 M
-(*/) s
-518.333 54 M
-(expand2_rot_table:) s
-518.333 46 M
-(        .byte 0,3,0,7,0,13,0,16,0,19,0,23,0,27) s
-518.333 30 M
-(expand2:) s
-518.333 22 M
-(        rcall expand_intro) s
-518.333 14 M
-(        ldi r19, 14) s
-518.333 6 M
-(        ldi r30, lo8\(expand2_rot_table\)) s
-_R
-S
-%%Page: (4) 4
-%%BeginPageSetup
-_S
-90 rotate
-36 -577 translate
-/pagenum 4 def
-/fname (bmw_small-tinyasm.S) def
-/fdir () def
-/ftail (bmw_small-tinyasm.S) def
-% User defined strings:
-/fmodstr (Mo Apr 05 09:57:29 2010) def
-/pagenumstr (4) def
-/user_header_p false def
-/user_footer_p false def
-%%EndPageSetup
-column_lines
-column_borders
-do_header
-5 534 M
-(        ldi r31, hi8\(expand2_rot_table\)) s
-5 526 M
-(10:) s
-5 518 M
-(        rcall load32_from_X) s
-5 510 M
-(        mov r20, r19) s
-5 502 M
-(        lpm r20, Z+) s
-5 494 M
-(        rcall rotateleft32) s
-5 486 M
-(        rcall add32_to_acc) s
-5 478 M
-(        dec r19) s
-5 470 M
-(        brne 10b) s
-5 462 M
-(        rcall load32_from_X) s
-5 454 M
-(        ldi r20, 4) s
-5 446 M
-(        rcall sn) s
-5 438 M
-(        rcall add32_to_acc) s
-5 430 M
-(        rcall load32_from_X) s
-5 422 M
-(        ldi r20, 5) s
-5 414 M
-(        rcall sn) s
-5 406 M
-(        rcall add32_to_acc) s
-5 390 M
-(        rjmp expand1_exit) s
-5 374 M
-(/*********************************************************) s
-5 366 M
-(*********************/) s
-5 358 M
-(/*) s
-5 350 M
-(  param q: r24:r25) s
-5 342 M
-(  param m: r22:r23) s
-5 334 M
-(  param h: r20:r21) s
-5 326 M
-(*/) s
-5 318 M
-(/* for calling expand1/2) s
-5 310 M
-(  param q: r26:r27) s
-5 302 M
-(  param m: r22:r23) s
-5 294 M
-(  param h: r20:r21) s
-5 286 M
-(  param j: r24) s
-5 278 M
-(*/) s
-5 270 M
-(f1:) s
-5 262 M
-(        movw r2, r24) s
-5 254 M
-(        movw r4, r22) s
-5 246 M
-(        movw r6, r20) s
-5 238 M
-(        movw r26, r2) s
-5 230 M
-(;       movw r22, r4) s
-5 222 M
-(;   movw r20, r6) s
-5 214 M
-(        clr r24) s
-5 206 M
-(        rcall expand1) s
-5 198 M
-(        movw r26, r2) s
-5 190 M
-(        movw r22, r4) s
-5 182 M
-(    movw r20, r6) s
-5 174 M
-(        ldi r24, 1) s
-5 166 M
-(        rcall expand1) s
-5 158 M
-(        ldi r17, 2) s
-5 150 M
-(10:     movw r26, r2) s
-5 142 M
-(        movw r22, r4) s
-5 134 M
-(        movw r20, r6) s
-5 126 M
-(        mov r24, r17) s
-5 118 M
-(        rcall expand2) s
-5 110 M
-(        inc r17) s
-5 102 M
-(        sbrs r17, 4) s
-5 94 M
-(        rjmp 10b) s
-5 86 M
-(        movw r24, r2) s
-5 78 M
-(        movw r22, r4) s
-5 70 M
-(        movw r20, r6) s
-5 62 M
-(        ret) s
-5 46 M
-(/*********************************************************) s
-5 38 M
-(*********************/) s
-5 30 M
-(/*) s
-5 22 M
-(  param q: r24:r25) s
-5 14 M
-(  param m: r22:r23) s
-5 6 M
-(  param h: r20:r21) s
-261.667 534 M
-(*/) s
-261.667 526 M
-(f2_1_shift_table:) s
-261.667 518 M
-(        .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x) s
-261.667 510 M
-(00) s
-261.667 502 M
-(        .byte 0x2B, 0x64, 0x66, 0x03, 0x51, 0x55, 0x87, 0x) s
-261.667 494 M
-(55) s
-261.667 486 M
-(f2_2_shift_table:) s
-261.667 478 M
-(        .byte \(2<<1\), \(7<<1\), \(4<<1\), \(3<<1\), \(4<<1\)+1, \(6) s
-261.667 470 M
-(<<1\)+1, \(6<<1\)) s
-261.667 462 M
-(        .byte 0 ; just for alignment) s
-261.667 454 M
-(acc2  =  8) s
-261.667 446 M
-(acc3  =  9) s
-261.667 438 M
-(acc0  = 14) s
-261.667 430 M
-(acc1  = 15) s
-261.667 422 M
-(xl0   =  2) s
-261.667 414 M
-(xl1   =  3) s
-261.667 406 M
-(xl2   =  4) s
-261.667 398 M
-(xl3   =  5) s
-261.667 390 M
-(xh0   =  6) s
-261.667 382 M
-(xh1   =  7) s
-261.667 374 M
-(xh2   = 10) s
-261.667 366 M
-(xh3   = 11) s
-261.667 358 M
-(q16_0 = 12) s
-261.667 350 M
-(q16_1 = 13) s
-261.667 342 M
-(h0   =  18) s
-261.667 334 M
-(h1   =  19) s
-261.667 326 M
-(f2:) s
-261.667 318 M
-(        movw r26, r24) s
-261.667 310 M
-(        /* calc XL */) s
-261.667 302 M
-(        adiw r26, 63) s
-261.667 294 M
-(        adiw r26,  1) s
-261.667 286 M
-(        movw q16_0, r26) s
-261.667 278 M
-(        clr xl0) s
-261.667 270 M
-(        clr xl1) s
-261.667 262 M
-(        clr xl2) s
-261.667 254 M
-(        clr xl3) s
-261.667 246 M
-(        ldi r17, 8) s
-261.667 238 M
-(10:     ld r0, X+) s
-261.667 230 M
-(        eor xl0, r0) s
-261.667 222 M
-(        ld r0, X+) s
-261.667 214 M
-(        eor xl1, r0) s
-261.667 206 M
-(        ld r0, X+) s
-261.667 198 M
-(        eor xl2, r0) s
-261.667 190 M
-(        ld r0, X+) s
-261.667 182 M
-(        eor xl3, r0) s
-261.667 174 M
-(        dec r17) s
-261.667 166 M
-(        brne 10b) s
-261.667 158 M
-(;--- /* calc XH */) s
-261.667 150 M
-(        movw xh0, xl0) s
-261.667 142 M
-(        movw xh2, xl2) s
-261.667 134 M
-(        ldi r17, 8) s
-261.667 126 M
-(10:     ld r0, X+) s
-261.667 118 M
-(        eor xh0, r0) s
-261.667 110 M
-(        ld r0, X+) s
-261.667 102 M
-(        eor xh1, r0) s
-261.667 94 M
-(        ld r0, X+) s
-261.667 86 M
-(        eor xh2, r0) s
-261.667 78 M
-(        ld r0, X+) s
-261.667 70 M
-(        eor xh3, r0) s
-261.667 62 M
-(        dec r17) s
-261.667 54 M
-(        brne 10b) s
-261.667 46 M
-(;--- DBG) s
-261.667 38 M
-(;       push_range 22, 25) s
-261.667 30 M
-(;       movw r22, xl0) s
-261.667 22 M
-(;       movw r24, xl2) s
-261.667 14 M
-(;       rcall print32) s
-261.667 6 M
-(;       movw r22, xh0) s
-518.333 534 M
-(;       movw r24, xh2) s
-518.333 526 M
-(;       rcall print32) s
-518.333 518 M
-(;       pop_range 22, 25) s
-518.333 510 M
-(;--- END DBG) s
-518.333 494 M
-(;--- /* calc first half of h0..h15 */) s
-518.333 486 M
-(        movw h0, r20) s
-518.333 478 M
-(        movw r28, r22) s
-518.333 470 M
-(        movw r26, q16_0) s
-518.333 462 M
-(        ldi r17, 16) s
-518.333 454 M
-(10:) s
-518.333 446 M
-(        ld acc0, Y+) s
-518.333 438 M
-(        ld acc1, Y+) s
-518.333 430 M
-(        ld acc2, Y+) s
-518.333 422 M
-(        ld acc3, Y+) s
-518.333 414 M
-(;---) s
-518.333 406 M
-(        ldi r30, lo8\(f2_1_shift_table-1\)) s
-518.333 398 M
-(        ldi r31, hi8\(f2_1_shift_table-1\)) s
-518.333 390 M
-(        movw r22, xh0) s
-518.333 382 M
-(        movw r24, xh2) s
-518.333 374 M
-(        add r30, r17) s
-518.333 366 M
-(        adc r31, r1) s
-518.333 358 M
-(        lpm r20, Z) s
-518.333 350 M
-(        mov r1, r20) s
-518.333 342 M
-(        andi r20, 0x0f) s
-518.333 334 M
-(        clt) s
-518.333 326 M
-(        cpi r17, 16) s
-518.333 318 M
-(        breq 20f) s
-518.333 310 M
-(        cpi r17, 11) s
-518.333 302 M
-(        brne 21f) s
-518.333 294 M
-(20:     set) s
-518.333 286 M
-(21:     brts 25f) s
-518.333 278 M
-(        rcall shiftright32) s
-518.333 270 M
-(        rjmp 26f) s
-518.333 262 M
-(25:     rcall shiftleft32) s
-518.333 254 M
-(26: rcall eor32_to_acc) s
-518.333 246 M
-(;---) s
-518.333 238 M
-(        rcall load32_from_X) s
-518.333 230 M
-(        mov r20, r1) s
-518.333 222 M
-(        clr r1) s
-518.333 214 M
-(        swap r20) s
-518.333 206 M
-(        andi r20, 0x0f) s
-518.333 198 M
-(        brts 27f) s
-518.333 190 M
-(        rcall shiftleft32) s
-518.333 182 M
-(        rjmp 28f) s
-518.333 174 M
-(27:     rcall shiftright32) s
-518.333 166 M
-(28:     rcall eor32_to_acc) s
-518.333 158 M
-(;---) s
-518.333 150 M
-(        movw r30, h0) s
-518.333 142 M
-(        st Z+, acc0) s
-518.333 134 M
-(        st Z+, acc1) s
-518.333 126 M
-(        st Z+, acc2) s
-518.333 118 M
-(        st Z+, acc3) s
-518.333 110 M
-(        movw h0, r30) s
-518.333 102 M
-(;---) s
-518.333 94 M
-(        dec r17) s
-518.333 86 M
-(        brne 10b) s
-518.333 78 M
-(;-----) s
-518.333 70 M
-(        sbiw r26, 4*8 /* X points to q[24] */) s
-518.333 62 M
-(        movw r28, r26) s
-518.333 54 M
-(        sbiw r28, 63) s
-518.333 46 M
-(        sbiw r28, 33 /* Y points to q[0] */) s
-518.333 38 M
-(        sbiw r30, 63) s
-518.333 30 M
-(        sbiw r30,  1 /* Z points to h0 */) s
-518.333 22 M
-(        ldi r17, 8) s
-518.333 14 M
-(10:     movw acc0, xl0) s
-518.333 6 M
-(        movw acc2, xl2) s
-_R
-S
-%%Page: (5) 5
-%%BeginPageSetup
-_S
-90 rotate
-36 -577 translate
-/pagenum 5 def
-/fname (bmw_small-tinyasm.S) def
-/fdir () def
-/ftail (bmw_small-tinyasm.S) def
-% User defined strings:
-/fmodstr (Mo Apr 05 09:57:29 2010) def
-/pagenumstr (5) def
-/user_header_p false def
-/user_footer_p false def
-%%EndPageSetup
-column_lines
-column_borders
-do_header
-5 534 M
-(        rcall load32_from_X) s
-5 526 M
-(        rcall eor32_to_acc) s
-5 518 M
-(        rcall load32_from_Y) s
-5 510 M
-(        rcall eor32_to_acc) s
-5 502 M
-(        rcall add_acc_to_Z) s
-5 494 M
-(        dec r17) s
-5 486 M
-(        brne 10b) s
-5 478 M
-(        sbiw r26, 9*4 /* X points to q[23] */) s
-5 470 M
-(        rcall load_acc_from_X) s
-5 462 M
-(        eor acc1, xl0) s
-5 454 M
-(        eor acc2, xl1) s
-5 446 M
-(        eor acc3, xl2) s
-5 438 M
-(        rcall load32_from_Y) s
-5 430 M
-(        rcall eor32_to_acc) s
-5 422 M
-(        rcall add_acc_to_Z) s
-5 414 M
-(;---) s
-5 406 M
-(        sbiw r26, 8*4 /* X points to q[16] */) s
-5 398 M
-(        mov h0, r30) s
-5 390 M
-(        ldi r17, 7) s
-5 382 M
-(10:) s
-5 374 M
-(        ldi r30, lo8\(f2_2_shift_table-1\)) s
-5 366 M
-(        ldi r31, hi8\(f2_2_shift_table-1\)) s
-5 358 M
-(        add r30, r17) s
-5 350 M
-(        adc r31, r1) s
-5 342 M
-(        lpm r20, Z) s
-5 334 M
-(        rcall load_acc_from_X) s
-5 326 M
-(        movw r22, xl0) s
-5 318 M
-(        movw r24, xl2) s
-5 310 M
-(        lsr r20) s
-5 302 M
-(        brcc 20f) s
-5 294 M
-(        rcall shiftleft32) s
-5 286 M
-(        rjmp 21f) s
-5 278 M
-(20:     rcall shiftright32) s
-5 270 M
-(21:) s
-5 262 M
-(        rcall eor32_to_acc) s
-5 254 M
-(        rcall load32_from_Y) s
-5 246 M
-(        rcall eor32_to_acc) s
-5 238 M
-(        movw r30, h0) s
-5 230 M
-(        rcall add_acc_to_Z) s
-5 222 M
-(        movw h0, r30) s
-5 214 M
-(        dec r17) s
-5 206 M
-(        brne 10b) s
-5 198 M
-(;-----) s
-5 190 M
-(        sbiw r30, 8*4 /* Z points to h8 */) s
-5 182 M
-(        movw r26, r30) s
-5 174 M
-(        sbiw r26, 4*4 /* X points to h4 */) s
-5 166 M
-(        ldi r17, 8) s
-5 158 M
-(        ldi r18, 9) s
-5 150 M
-(10:) s
-5 142 M
-(        rcall load32_from_X) s
-5 134 M
-(        mov r20, r18) s
-5 126 M
-(        rcall rotateleft32) s
-5 118 M
-(        movw acc0, r22) s
-5 110 M
-(        movw acc2, r24) s
-5 102 M
-(        rcall add_acc_to_Z) s
-5 94 M
-(        inc r18) s
-5 86 M
-(        cpi r17, 5) s
-5 78 M
-(        breq 20f) s
-5 70 M
-(        dec r17) s
-5 62 M
-(        brne 10b) s
-5 54 M
-(        ret) s
-5 46 M
-(20: sbiw r26, 8*4) s
-5 38 M
-(        dec r17) s
-5 30 M
-(        rjmp 10b) s
-5 14 M
-(/*********************************************************) s
-5 6 M
-(*********************/) s
-261.667 534 M
-(/*) s
-261.667 526 M
-(  param ctx:  r24:r25) s
-261.667 518 M
-(  param msg:  r22:r23) s
-261.667 510 M
-(*/) s
-261.667 502 M
-(/* f0) s
-261.667 494 M
-(  param q:  r28:r29 \(Y\)) s
-261.667 486 M
-(  param h:  r26:r27 \(X\)) s
-261.667 478 M
-(  param m:  r30:r31 \(Z\)) s
-261.667 470 M
-(*/) s
-261.667 462 M
-(/* f1) s
-261.667 454 M
-(  param q: r24:r25) s
-261.667 446 M
-(  param m: r22:r23) s
-261.667 438 M
-(  param h: r20:r21) s
-261.667 430 M
-(*/) s
-261.667 422 M
-(/* f2) s
-261.667 414 M
-(  param q: r24:r25) s
-261.667 406 M
-(  param m: r22:r23) s
-261.667 398 M
-(  param h: r20:r21) s
-261.667 390 M
-(*/) s
-261.667 382 M
-(.global bmw_small_nextBlock) s
-261.667 374 M
-(.global bmw224_nextBlock) s
-261.667 366 M
-(.global bmw256_nextBlock) s
-261.667 358 M
-(bmw_small_nextBlock:) s
-261.667 350 M
-(bmw224_nextBlock:) s
-261.667 342 M
-(bmw256_nextBlock:) s
-261.667 334 M
-(        push_range 28, 29) s
-261.667 326 M
-(        push_range  2, 17) s
-261.667 318 M
-(        stack_alloc_large 32*4, r28, r29) s
-261.667 310 M
-(        adiw r28, 1) s
-261.667 302 M
-(;       push_range 28, 29 /* push Q */) s
-261.667 294 M
-(;       push_range 22, 25 /* push M & H */) s
-261.667 286 M
-(        /* increment counter */) s
-261.667 278 M
-(        movw r26, r24) s
-261.667 270 M
-(        movw r2, r26) s
-261.667 262 M
-(        adiw r26, 63) s
-261.667 254 M
-(        adiw r26,  1) s
-261.667 246 M
-(        rcall load_acc_from_X) s
-261.667 238 M
-(        ldi r19, 1) s
-261.667 230 M
-(        add acc0, r19) s
-261.667 222 M
-(        adc acc1, r1) s
-261.667 214 M
-(        adc acc2, r1) s
-261.667 206 M
-(        adc acc3, r1) s
-261.667 198 M
-(        st -X, acc3) s
-261.667 190 M
-(        st -X, acc2) s
-261.667 182 M
-(        st -X, acc1) s
-261.667 174 M
-(        st -X, acc0) s
-261.667 166 M
-(        /* call f0 */) s
-261.667 158 M
-(        movw r30, r22) s
-261.667 150 M
-(        movw r26, r24) s
-261.667 142 M
-(        rcall f0) s
-261.667 134 M
-(        /* call f1*/) s
-261.667 126 M
-(        movw r24, r28) s
-261.667 110 M
-(;       rcall printQ) s
-261.667 102 M
-(        rcall f1) s
-261.667 94 M
-(        /* call f2 */) s
-261.667 86 M
-(;       pop_range 20, 25) s
-261.667 78 M
-(;       push_range 20, 25) s
-261.667 70 M
-(;       rcall printQ) s
-261.667 62 M
-(;       push r20) s
-261.667 54 M
-(;       push r21) s
-261.667 46 M
-(        call f2) s
-261.667 38 M
-(;--- DBG) s
-261.667 30 M
-(;       pop r25) s
-261.667 22 M
-(;       pop r24) s
-261.667 14 M
-(;       ldi r22, 'H') s
-261.667 6 M
-(;       rcall printX) s
-518.333 534 M
-(;--- END DBG) s
-518.333 526 M
-(        stack_free_large3 32*4) s
-518.333 518 M
-(        pop_range  2, 17) s
-518.333 510 M
-(        pop_range 28, 29) s
-518.333 502 M
-(        ret) s
-518.333 486 M
-(/*********************************************************) s
-518.333 478 M
-(*********************/) s
-518.333 470 M
-(/*) s
-518.333 462 M
-(  param ctx:  r24:r25) s
-518.333 454 M
-(  param msg:  r22:r23) s
-518.333 446 M
-(  param len:  r20:r21) s
-518.333 438 M
-(*/) s
-518.333 430 M
-(ctx0 =  2) s
-518.333 422 M
-(ctx1 =  3) s
-518.333 414 M
-(blc0 =  4) s
-518.333 406 M
-(blc1 =  5) s
-518.333 398 M
-(len0 = 28) s
-518.333 390 M
-(len1 = 29) s
-518.333 382 M
-(buf0 =  6) s
-518.333 374 M
-(buf1 =  7) s
-518.333 358 M
-(.global bmw_small_lastBlock) s
-518.333 350 M
-(.global bmw224_lastBlock) s
-518.333 342 M
-(.global bmw256_lastBlock) s
-518.333 334 M
-(bmw_small_lastBlock:) s
-518.333 326 M
-(bmw224_lastBlock:) s
-518.333 318 M
-(bmw256_lastBlock:) s
-518.333 310 M
-(/*      while\(length_b >= BMW_SMALL_BLOCKSIZE\){) s
-518.333 302 M
-(                bmw_small_nextBlock\(ctx, block\);) s
-518.333 294 M
-(                length_b -= BMW_SMALL_BLOCKSIZE;) s
-518.333 286 M
-(                block = \(uint8_t*\)block + BMW_SMALL_BLOCKS) s
-518.333 278 M
-(IZE_B;) s
-518.333 270 M
-(        }) s
-518.333 262 M
-(*/) s
-518.333 254 M
-(        push_range 2, 7) s
-518.333 246 M
-(        push_range 28, 29) s
-518.333 238 M
-(        movw ctx0, r24) s
-518.333 230 M
-(        movw blc0, r22) s
-518.333 222 M
-(        movw len0, r20) s
-518.333 214 M
-(1:) s
-518.333 206 M
-(        cpi len1, hi8\(512\)) s
-518.333 198 M
-(        brlo 2f) s
-518.333 190 M
-(        movw r24, ctx0) s
-518.333 182 M
-(        movw r22, blc0) s
-518.333 174 M
-(        rcall bmw_small_nextBlock) s
-518.333 166 M
-(        ldi r24, 64) s
-518.333 158 M
-(        add blc0, r24) s
-518.333 150 M
-(        adc blc1, r1) s
-518.333 142 M
-(        subi len1, hi8\(512\)) s
-518.333 134 M
-(        rjmp 1b) s
-518.333 126 M
-(2:) s
-518.333 118 M
-(/*      struct {) s
-518.333 110 M
-(                uint8_t  buffer[64];) s
-518.333 102 M
-(                uint32_t ctr;) s
-518.333 94 M
-(        } pctx;) s
-518.333 86 M
-(*/) s
-518.333 78 M
-(        stack_alloc_large 68) s
-518.333 70 M
-(        adiw r30, 1) s
-518.333 62 M
-(        movw buf0, r30) s
-518.333 54 M
-(/*      memset\(pctx.buffer, 0, 64\);) s
-518.333 46 M
-(        memcpy\(pctx.buffer, block, \(length_b+7\)/8\);) s
-518.333 38 M
-(        pctx.buffer[length_b>>3] |= 0x80 >> \(length_b&0x07) s
-518.333 30 M
-(\);) s
-518.333 22 M
-(*/      movw r24, len0) s
-518.333 14 M
-(        lsr r25) s
-518.333 6 M
-(        ror r24) s
-_R
-S
-%%Page: (6) 6
-%%BeginPageSetup
-_S
-90 rotate
-36 -577 translate
-/pagenum 6 def
-/fname (bmw_small-tinyasm.S) def
-/fdir () def
-/ftail (bmw_small-tinyasm.S) def
-% User defined strings:
-/fmodstr (Mo Apr 05 09:57:29 2010) def
-/pagenumstr (6) def
-/user_header_p false def
-/user_footer_p false def
-%%EndPageSetup
-column_lines
-column_borders
-do_header
-5 534 M
-(        lsr r24) s
-5 526 M
-(        lsr r24) s
-5 518 M
-(        ldi r23, 63) s
-5 510 M
-(        sub r23, r24) s
-5 502 M
-(        movw r26, blc0) s
-5 494 M
-(        tst r24) s
-5 486 M
-(        breq 301f) s
-5 478 M
-(        /* copy \(#r24\) bytes to stack buffer */) s
-5 470 M
-(30: ld r20, X+) s
-5 462 M
-(        st Z+, r20) s
-5 454 M
-(        dec r24) s
-5 446 M
-(        brne 30b) s
-5 438 M
-(301: /* calculate the appended byte */) s
-5 430 M
-(        clr r20) s
-5 422 M
-(        mov r21, len0) s
-5 414 M
-(        ldi r24, 0x80) s
-5 406 M
-(        andi r21, 0x07) s
-5 398 M
-(        breq 305f) s
-5 390 M
-(        ld r20, X+) s
-5 382 M
-(303:) s
-5 374 M
-(        lsr r24) s
-5 366 M
-(        dec r21) s
-5 358 M
-(        brne 303b) s
-5 350 M
-(305:) s
-5 342 M
-(        or r20, r24) s
-5 334 M
-(        st Z+, r20) s
-5 326 M
-(        tst r23) s
-5 318 M
-(        breq 32f) s
-5 310 M
-(31: st Z+, r1) s
-5 302 M
-(        dec r23) s
-5 294 M
-(        brne 31b) s
-5 286 M
-(32:) s
-5 278 M
-(/*      if\(length_b+1>64*8-64\){ ; = 64*7-1 = 447 max\(lengt) s
-5 270 M
-(h_b\)=511) s
-5 262 M
-(                bmw_small_nextBlock\(ctx, pctx.buffer\);) s
-5 254 M
-(                memset\(pctx.buffer, 0, 64-8\);) s
-5 246 M
-(                ctx->counter -= 1;) s
-5 238 M
-(        }) s
-5 230 M
-(*/) s
-5 222 M
-(        tst len1) s
-5 214 M
-(        breq 400f) s
-5 206 M
-(        cpi len0, 192) s
-5 198 M
-(        brlo 400f) s
-5 190 M
-(        movw r24, ctx0) s
-5 182 M
-(        movw r22, buf0) s
-5 174 M
-(        rcall bmw_small_nextBlock) s
-5 166 M
-(        movw r26, buf0) s
-5 158 M
-(        ldi r20, 64-8) s
-5 150 M
-(350:) s
-5 142 M
-(        st X+, r1) s
-5 134 M
-(        dec r20) s
-5 126 M
-(        brne 350b) s
-5 118 M
-(        movw r30, ctx0) s
-5 110 M
-(        adiw r30, 60) s
-5 102 M
-(        ldd r21, Z+4) s
-5 94 M
-(        ldd r22, Z+5) s
-5 86 M
-(        ldd r23, Z+6) s
-5 78 M
-(        ldd r24, Z+7) s
-5 70 M
-(        subi r21, 1) s
-5 62 M
-(        sbc r22, r1) s
-5 54 M
-(        sbc r23, r1) s
-5 46 M
-(        sbc r24, r1) s
-5 38 M
-(        rjmp 410f) s
-5 30 M
-(/*      *\(\(uint64_t*\)&\(pctx.buffer[64-8]\)\) = \(uint64_t\)\(ct) s
-5 22 M
-(x->counter*512LL\)+\(uint64_t\)length_b;) s
-5 14 M
-(        bmw_small_nextBlock\(ctx, pctx.buffer\);) s
-5 6 M
-(*/) s
-261.667 534 M
-(400:) s
-261.667 526 M
-(        movw r30, ctx0) s
-261.667 518 M
-(        adiw r30, 60) s
-261.667 510 M
-(        ldd r21, Z+4) s
-261.667 502 M
-(        ldd r22, Z+5) s
-261.667 494 M
-(        ldd r23, Z+6) s
-261.667 486 M
-(        ldd r24, Z+7) s
-261.667 478 M
-(410:) s
-261.667 470 M
-(        clr r25) s
-261.667 462 M
-(        lsl r21) s
-261.667 454 M
-(        rol r22) s
-261.667 446 M
-(        rol r23) s
-261.667 438 M
-(        rol r24) s
-261.667 430 M
-(        rol r25) s
-261.667 422 M
-(        mov r20, len0) s
-261.667 414 M
-(        add r21, len1) s
-261.667 406 M
-(        adc r22, r1) s
-261.667 398 M
-(        adc r23, r1) s
-261.667 390 M
-(        adc r24, r1) s
-261.667 382 M
-(        adc r25, r1) s
-261.667 374 M
-(        movw r30, buf0) s
-261.667 366 M
-(        adiw r30, 64-8) s
-261.667 358 M
-(        st Z+, r20) s
-261.667 350 M
-(        st Z+, r21) s
-261.667 342 M
-(        st Z+, r22) s
-261.667 334 M
-(        st Z+, r23) s
-261.667 326 M
-(        st Z+, r24) s
-261.667 318 M
-(        st Z+, r25) s
-261.667 310 M
-(        st Z+, r1) s
-261.667 302 M
-(        st Z+, r1) s
-261.667 294 M
-(        movw r24, ctx0) s
-261.667 286 M
-(        movw r22, buf0) s
-261.667 278 M
-(        rcall bmw_small_nextBlock) s
-261.667 270 M
-(/*      memset\(pctx.buffer, 0xaa, 64\);) s
-261.667 262 M
-(        for\(i=0; i<16;++i\){) s
-261.667 254 M
-(                pctx.buffer[i*4] = i+0xa0;) s
-261.667 246 M
-(        }) s
-261.667 238 M
-(*/) s
-261.667 230 M
-(        ldi r18, 0xa0) s
-261.667 222 M
-(        ldi r19, 0xaa) s
-261.667 214 M
-(        movw r26, buf0) s
-261.667 206 M
-(500:) s
-261.667 198 M
-(        st X+, r18) s
-261.667 190 M
-(        st X+, r19) s
-261.667 182 M
-(        st X+, r19) s
-261.667 174 M
-(        st X+, r19) s
-261.667 166 M
-(        inc r18) s
-261.667 158 M
-(        sbrs r18, 4) s
-261.667 150 M
-(        rjmp 500b) s
-261.667 142 M
-(/*      bmw_small_nextBlock\(\(bmw_small_ctx_t*\)&pctx, ctx->) s
-261.667 134 M
-(h\);) s
-261.667 126 M
-(        memcpy\(ctx->h, pctx.buffer, 64\);) s
-261.667 118 M
-(*/) s
-261.667 110 M
-(        movw r24, buf0) s
-261.667 102 M
-(        movw r22, ctx0) s
-261.667 94 M
-(        rcall bmw_small_nextBlock) s
-261.667 86 M
-(        ldi r18, 64) s
-261.667 78 M
-(        movw r26, ctx0) s
-261.667 70 M
-(        movw r30, buf0) s
-261.667 62 M
-(600:) s
-261.667 54 M
-(        ld r20, Z+) s
-261.667 46 M
-(        st X+, r20) s
-261.667 38 M
-(        dec r18) s
-261.667 30 M
-(        brne 600b) s
-261.667 14 M
-(        stack_free_large 68) s
-261.667 6 M
-(        pop_range 28, 29) s
-518.333 534 M
-(        pop_range 2, 7) s
-518.333 526 M
-(        ret) s
-518.333 502 M
-(/*********************************************************) s
-518.333 494 M
-(**********************) s
-518.333 486 M
-(* void bmw224_ctx2hash\(void* dest, const bmw224_ctx_t* ctx) s
-518.333 478 M
-(\){) s
-518.333 470 M
-(*       memcpy\(dest, &\(ctx->h[9]\), 224/8\);) s
-518.333 462 M
-(* }) s
-518.333 454 M
-(*) s
-518.333 446 M
-(* param dest:  r24:r25) s
-518.333 438 M
-(* param ctx:   r22:r23) s
-518.333 430 M
-(*/) s
-518.333 422 M
-(.global bmw224_ctx2hash) s
-518.333 414 M
-(bmw224_ctx2hash:) s
-518.333 406 M
-(        movw r26, r24) s
-518.333 398 M
-(        movw r30, r22) s
-518.333 390 M
-(        adiw r30, 9*4) s
-518.333 382 M
-(        ldi r22, 28) s
-518.333 374 M
-(        rjmp 1f) s
-518.333 358 M
-(/*********************************************************) s
-518.333 350 M
-(**********************) s
-518.333 342 M
-(* void bmw256_ctx2hash\(void* dest, const bmw256_ctx_t* ctx) s
-518.333 334 M
-(\){) s
-518.333 326 M
-(*       memcpy\(dest, &\(ctx->h[8]\), 256/8\);) s
-518.333 318 M
-(* }) s
-518.333 310 M
-(*) s
-518.333 302 M
-(* param dest:  r24:r25) s
-518.333 294 M
-(* param ctx:   r22:r23) s
-518.333 286 M
-(*/) s
-518.333 278 M
-(.global bmw256_ctx2hash) s
-518.333 270 M
-(bmw256_ctx2hash:) s
-518.333 262 M
-(        movw r26, r24) s
-518.333 254 M
-(        movw r30, r22) s
-518.333 246 M
-(        adiw r30, 8*4) s
-518.333 238 M
-(        ldi r22, 32) s
-518.333 230 M
-(1:) s
-518.333 222 M
-(        ld r23, Z+) s
-518.333 214 M
-(        st X+, r23) s
-518.333 206 M
-(        dec r22) s
-518.333 198 M
-(        brne 1b) s
-518.333 190 M
-(        ret) s
-518.333 174 M
-(/*********************************************************) s
-518.333 166 M
-(**********************) s
-518.333 158 M
-(* void bmw256\(void* dest, const void* msg, uint32_t length) s
-518.333 150 M
-(_b\){) s
-518.333 142 M
-(*       bmw_small_ctx_t ctx;) s
-518.333 134 M
-(*       bmw256_init\(&ctx\);) s
-518.333 126 M
-(*       while\(length_b>=BMW_SMALL_BLOCKSIZE\){) s
-518.333 118 M
-(*               bmw_small_nextBlock\(&ctx, msg\);) s
-518.333 110 M
-(*               length_b -= BMW_SMALL_BLOCKSIZE;) s
-518.333 102 M
-(*               msg = \(uint8_t*\)msg + BMW_SMALL_BLOCKSIZE_) s
-518.333 94 M
-(B;) s
-518.333 86 M
-(*       }) s
-518.333 78 M
-(*       bmw_small_lastBlock\(&ctx, msg, length_b\);) s
-518.333 70 M
-(*       bmw256_ctx2hash\(dest, &ctx\);) s
-518.333 62 M
-(* }) s
-518.333 54 M
-(*) s
-518.333 46 M
-(* param dest:     r24:r25) s
-518.333 38 M
-(* param msg:      r22:r23) s
-518.333 30 M
-(* param length_b: r18:r21) s
-518.333 22 M
-(*/) s
-518.333 14 M
-(ctx0 =   2) s
-518.333 6 M
-(ctx1 =   3) s
-_R
-S
-%%Page: (7) 7
-%%BeginPageSetup
-_S
-90 rotate
-36 -577 translate
-/pagenum 7 def
-/fname (bmw_small-tinyasm.S) def
-/fdir () def
-/ftail (bmw_small-tinyasm.S) def
-% User defined strings:
-/fmodstr (Mo Apr 05 09:57:29 2010) def
-/pagenumstr (7) def
-/user_header_p false def
-/user_footer_p false def
-%%EndPageSetup
-column_lines
-column_borders
-do_header
-5 534 M
-(msg0 =   4) s
-5 526 M
-(msg1 =   5) s
-5 518 M
-(len0 =   6) s
-5 510 M
-(len1 =   7) s
-5 502 M
-(len2 =   8) s
-5 494 M
-(len3 =   9) s
-5 486 M
-(dst0 =  10) s
-5 478 M
-(dst1 =  11) s
-5 470 M
-(.global bmw256) s
-5 462 M
-(bmw256:) s
-5 454 M
-(        push r16) s
-5 446 M
-(        ldi r16, 1) s
-5 438 M
-(        rjmp bmw_small_all) s
-5 422 M
-(/*********************************************************) s
-5 414 M
-(**********************) s
-5 406 M
-(* void bmw224\(void* dest, const void* msg, uint32_t length) s
-5 398 M
-(_b\){) s
-5 390 M
-(*       bmw_small_ctx_t ctx;) s
-5 382 M
-(*       bmw224_init\(&ctx\);) s
-5 374 M
-(*       while\(length_b>=BMW_SMALL_BLOCKSIZE\){) s
-5 366 M
-(*               bmw_small_nextBlock\(&ctx, msg\);) s
-5 358 M
-(*               length_b -= BMW_SMALL_BLOCKSIZE;) s
-5 350 M
-(*               msg = \(uint8_t*\)msg + BMW_SMALL_BLOCKSIZE_) s
-5 342 M
-(B;) s
-5 334 M
-(*       }) s
-5 326 M
-(*       bmw_small_lastBlock\(&ctx, msg, length_b\);) s
-5 318 M
-(*       bmw224_ctx2hash\(dest, &ctx\);) s
-5 310 M
-(* }) s
-5 302 M
-(*) s
-5 294 M
-(* param dest:     r24:r25) s
-5 286 M
-(* param msg:      r22:r23) s
-5 278 M
-(* param length_b: r18:r21) s
-5 270 M
-(*/) s
-5 262 M
-(ctx0 =   2) s
-5 254 M
-(ctx1 =   3) s
-5 246 M
-(msg0 =   4) s
-5 238 M
-(msg1 =   5) s
-5 230 M
-(len0 =   6) s
-5 222 M
-(len1 =   7) s
-5 214 M
-(len2 =   8) s
-5 206 M
-(len3 =   9) s
-5 198 M
-(dst0 =  10) s
-5 190 M
-(dst1 =  11) s
-5 182 M
-(.global bmw224) s
-5 174 M
-(bmw224:) s
-5 166 M
-(        push r16) s
-5 158 M
-(        clr r16) s
-5 142 M
-(bmw_small_all:) s
-5 134 M
-(        push_range 2, 11) s
-5 126 M
-(        stack_alloc_large 64+4) s
-5 118 M
-(        adiw r30, 1) s
-5 110 M
-(        movw ctx0, r30) s
-5 102 M
-(        movw dst0, r24) s
-5 94 M
-(        movw msg0, r22) s
-5 86 M
-(        movw len0, r18) s
-5 78 M
-(        movw len2, r20) s
-5 70 M
-(        movw r24, ctx0) s
-5 62 M
-(        ldi r30, pm_lo8\(init_lut\)) s
-5 54 M
-(        ldi r31, pm_hi8\(init_lut\)) s
-5 46 M
-(        add r30, r16) s
-5 38 M
-(        adc r31, r1) s
-5 30 M
-(        icall) s
-5 22 M
-(20:) s
-5 14 M
-(        mov r18, len2) s
-5 6 M
-(        or  r18, len3) s
-261.667 534 M
-(        breq 50f) s
-261.667 526 M
-(        movw r24, ctx0) s
-261.667 518 M
-(        movw r22, msg0) s
-261.667 510 M
-(        rcall bmw_small_nextBlock) s
-261.667 502 M
-(        ldi r20, 2) s
-261.667 494 M
-(        sub len1, r20) s
-261.667 486 M
-(        sbc len2, r1) s
-261.667 478 M
-(        sbc len3, r1) s
-261.667 470 M
-(        ldi r20, 64) s
-261.667 462 M
-(        add msg0, r20) s
-261.667 454 M
-(        adc msg1, r1) s
-261.667 446 M
-(        rjmp 20b) s
-261.667 438 M
-(50:) s
-261.667 430 M
-(        movw r24, ctx0) s
-261.667 422 M
-(        movw r22, msg0) s
-261.667 414 M
-(        movw r20, len0) s
-261.667 406 M
-(        rcall bmw_small_lastBlock) s
-261.667 398 M
-(        movw r24, dst0) s
-261.667 390 M
-(        movw r22, ctx0) s
-261.667 382 M
-(        ldi r30, pm_lo8\(c2h_lut\)) s
-261.667 374 M
-(        ldi r31, pm_hi8\(c2h_lut\)) s
-261.667 366 M
-(        add r30, r16) s
-261.667 358 M
-(        adc r31, r1) s
-261.667 350 M
-(        icall) s
-261.667 342 M
-(        stack_free_large 64+4) s
-261.667 334 M
-(        pop_range 2, 11) s
-261.667 326 M
-(        pop r16) s
-261.667 318 M
-(        ret) s
-261.667 302 M
-(init_lut:) s
-261.667 294 M
-(        rjmp bmw224_init) s
-261.667 286 M
-(        rjmp bmw256_init) s
-261.667 278 M
-(c2h_lut:) s
-261.667 270 M
-(        rjmp bmw224_ctx2hash) s
-261.667 262 M
-(        rjmp bmw256_ctx2hash) s
-261.667 246 M
-(/*********************************************************) s
-261.667 238 M
-(**********************) s
-261.667 230 M
-(* void bmw224_init\(bmw224_ctx_t* ctx\){) s
-261.667 222 M
-(*       uint8_t i;) s
-261.667 214 M
-(*       ctx->h[0] = 0x00010203;) s
-261.667 206 M
-(*       for\(i=1; i<16; ++i\){) s
-261.667 198 M
-(*               ctx->h[i] = ctx->h[i-1]+ 0x04040404;) s
-261.667 190 M
-(*       }) s
-261.667 182 M
-(*       ctx->counter=0;) s
-261.667 174 M
-(* }) s
-261.667 166 M
-(*) s
-261.667 158 M
-(* param ctx:  r24:r25) s
-261.667 150 M
-(*/) s
-261.667 142 M
-(.global bmw224_init) s
-261.667 134 M
-(bmw224_init:) s
-261.667 126 M
-(        movw r26, r24) s
-261.667 118 M
-(        ldi r22, 0x03) s
-261.667 110 M
-(        ldi r23, 0x02) s
-261.667 102 M
-(        ldi r24, 0x01) s
-261.667 94 M
-(        ldi r25, 0x00) s
-261.667 86 M
-(bmw_small_init:) s
-261.667 78 M
-(        st X+, r22) s
-261.667 70 M
-(        st X+, r23) s
-261.667 62 M
-(        st X+, r24) s
-261.667 54 M
-(        st X+, r25) s
-261.667 46 M
-(        ldi r18, 16-1) s
-261.667 38 M
-(        ldi r20, 0x04) s
-261.667 30 M
-(1:) s
-261.667 22 M
-(        add r22, r20) s
-261.667 14 M
-(        adc r23, r20) s
-261.667 6 M
-(        adc r24, r20) s
-518.333 534 M
-(        adc r25, r20) s
-518.333 526 M
-(        st X+, r22) s
-518.333 518 M
-(        st X+, r23) s
-518.333 510 M
-(        st X+, r24) s
-518.333 502 M
-(        st X+, r25) s
-518.333 494 M
-(        dec r18) s
-518.333 486 M
-(        brne 1b) s
-518.333 478 M
-(        st X+, r1) s
-518.333 470 M
-(        st X+, r1) s
-518.333 462 M
-(        st X+, r1) s
-518.333 454 M
-(        st X+, r1) s
-518.333 446 M
-(        ret) s
-518.333 430 M
-(.global bmw256_init) s
-518.333 422 M
-(bmw256_init:) s
-518.333 414 M
-(        movw r26, r24) s
-518.333 406 M
-(        ldi r22, 0x43) s
-518.333 398 M
-(        ldi r23, 0x42) s
-518.333 390 M
-(        ldi r24, 0x41) s
-518.333 382 M
-(        ldi r25, 0x40) s
-518.333 374 M
-(        rjmp bmw_small_init) s
-518.333 350 M
-(/*********************************************************) s
-518.333 342 M
-(*********************/) s
-518.333 326 M
-(#if DEBUG) s
-518.333 310 M
-(printQ:) s
-518.333 302 M
-(        push_range 20, 25) s
-518.333 294 M
-(        ldi r16, 4) s
-518.333 286 M
-(        mov r9, r16) s
-518.333 278 M
-(        movw r16, r24) s
-518.333 270 M
-(        ldi r24, lo8\(qdbg_str\)) s
-518.333 262 M
-(        ldi r25, hi8\(qdbg_str\)) s
-518.333 254 M
-(        call cli_putstr_P) s
-518.333 246 M
-(        clr r8) s
-518.333 238 M
-(10:     ldi r24, lo8\(qdbg_str1\)) s
-518.333 230 M
-(        ldi r25, hi8\(qdbg_str1\)) s
-518.333 222 M
-(        call cli_putstr_P) s
-518.333 214 M
-(        mov r24, r8) s
-518.333 206 M
-(        call cli_hexdump_byte) s
-518.333 198 M
-(        ldi r24, lo8\(qdbg_str2\)) s
-518.333 190 M
-(        ldi r25, hi8\(qdbg_str2\)) s
-518.333 182 M
-(        call cli_putstr_P) s
-518.333 174 M
-(        movw r24, r16) s
-518.333 166 M
-(        clr r23) s
-518.333 158 M
-(        ldi r22, 4) s
-518.333 150 M
-(        call cli_hexdump_rev) s
-518.333 142 M
-(        add r16, r9) s
-518.333 134 M
-(        adc r17, r1) s
-518.333 126 M
-(        inc r8) s
-518.333 118 M
-(        sbrs r8, 5) s
-518.333 110 M
-(        rjmp 10b) s
-518.333 102 M
-(        pop_range 20, 25) s
-518.333 94 M
-(        ret) s
-518.333 86 M
-(qdbg_str:  .asciz "\\r\\nDBG Q: ") s
-518.333 78 M
-(qdbg_str1: .asciz "\\r\\n Q[") s
-518.333 70 M
-(qdbg_str2: .asciz "] =  ") s
-518.333 46 M
-(printX:) s
-518.333 38 M
-(        push_range 6, 9) s
-518.333 30 M
-(        push_range 16, 27) s
-518.333 22 M
-(        push_range 30, 31) s
-518.333 14 M
-(        ldi r16, 4) s
-518.333 6 M
-(        mov r6, r22) s
-_R
-S
-%%Page: (8) 8
-%%BeginPageSetup
-_S
-90 rotate
-36 -577 translate
-/pagenum 8 def
-/fname (bmw_small-tinyasm.S) def
-/fdir () def
-/ftail (bmw_small-tinyasm.S) def
-% User defined strings:
-/fmodstr (Mo Apr 05 09:57:29 2010) def
-/pagenumstr (8) def
-/user_header_p false def
-/user_footer_p false def
-%%EndPageSetup
-column_lines
-column_borders
-do_header
-5 534 M
-(        mov r9, r16) s
-5 526 M
-(        movw r16, r24) s
-5 518 M
-(        ldi r24, lo8\(Xdbg_str\)) s
-5 510 M
-(        ldi r25, hi8\(Xdbg_str\)) s
-5 502 M
-(        call cli_putstr_P) s
-5 494 M
-(        mov r24, r6) s
-5 486 M
-(        call cli_putc) s
-5 478 M
-(        ldi r24, ':') s
-5 470 M
-(        call cli_putc) s
-5 462 M
-(        clr r8) s
-5 454 M
-(10:     ldi r24, lo8\(Xdbg_str1\)) s
-5 446 M
-(        ldi r25, hi8\(Xdbg_str1\)) s
-5 438 M
-(        call cli_putstr_P) s
-5 430 M
-(        mov r24, r6) s
-5 422 M
-(        call cli_putc) s
-5 414 M
-(        ldi r24, '[') s
-5 406 M
-(        call cli_putc) s
-5 398 M
-(        mov r24, r8) s
-5 390 M
-(        call cli_hexdump_byte) s
-5 382 M
-(        ldi r24, lo8\(Xdbg_str2\)) s
-5 374 M
-(        ldi r25, hi8\(Xdbg_str2\)) s
-5 366 M
-(        call cli_putstr_P) s
-5 358 M
-(        movw r24, r16) s
-5 350 M
-(        clr r23) s
-5 342 M
-(        ldi r22, 4) s
-5 334 M
-(        call cli_hexdump_rev) s
-5 326 M
-(        add r16, r9) s
-5 318 M
-(        adc r17, r1) s
-5 310 M
-(        inc r8) s
-5 302 M
-(        sbrs r8, 4) s
-5 294 M
-(        rjmp 10b) s
-5 286 M
-(        pop_range 30, 31) s
-5 278 M
-(        pop_range 16, 27) s
-5 270 M
-(        pop_range 6, 9) s
-5 262 M
-(        ret) s
-5 254 M
-(Xdbg_str:  .asciz "\\r\\nDBG ") s
-5 246 M
-(Xdbg_str1: .asciz "\\r\\n ") s
-5 238 M
-(Xdbg_str2: .asciz "] = ") s
-5 222 M
-(print32:) s
-5 214 M
-(        push_range 6, 9) s
-5 206 M
-(        push_range 16, 27) s
-5 198 M
-(        push_range 30, 31) s
-5 190 M
-(        movw r6, r22) s
-5 182 M
-(        movw r8, r24) s
-5 174 M
-(        ldi r24, lo8\(Xdbg_str\)) s
-5 166 M
-(        ldi r25, hi8\(Xdbg_str\)) s
-5 158 M
-(        call cli_putstr_P) s
-5 150 M
-(        mov r24, r9) s
-5 142 M
-(        call cli_hexdump_byte) s
-5 134 M
-(        mov r24, r8) s
-5 126 M
-(        call cli_hexdump_byte) s
-5 118 M
-(        mov r24, r7) s
-5 110 M
-(        call cli_hexdump_byte) s
-5 102 M
-(        mov r24, r6) s
-5 94 M
-(        call cli_hexdump_byte) s
-5 86 M
-(        pop_range 30, 31) s
-5 78 M
-(        pop_range 16, 27) s
-5 70 M
-(        pop_range 6, 9) s
-5 62 M
-(        ret) s
-5 38 M
-(print_acc:) s
-5 30 M
-(        push_range 16, 27) s
-5 22 M
-(        push_range 30, 31) s
-5 14 M
-(        ldi r24, lo8\(Xdbg_str\)) s
-5 6 M
-(        ldi r25, hi8\(Xdbg_str\)) s
-261.667 534 M
-(        call cli_putstr_P) s
-261.667 526 M
-(        mov r24, r9) s
-261.667 518 M
-(        call cli_hexdump_byte) s
-261.667 510 M
-(        mov r24, r8) s
-261.667 502 M
-(        call cli_hexdump_byte) s
-261.667 494 M
-(        mov r24, r15) s
-261.667 486 M
-(        call cli_hexdump_byte) s
-261.667 478 M
-(        mov r24, r14) s
-261.667 470 M
-(        call cli_hexdump_byte) s
-261.667 462 M
-(        pop_range 30, 31) s
-261.667 454 M
-(        pop_range 16, 27) s
-261.667 446 M
-(        ret) s
-261.667 430 M
-(#endif) s
-_R
-S
-%%Trailer
-%%Pages: 8
-%%DocumentNeededResources: font Courier-Bold Courier 
-%%EOF