;******************************************************************************
;* TMS320C6x ANSI C Codegen                   Version 4.09 Beta (Feb  8 2001) *
;* Date/Time created: Sat Apr 06 19:22:12 2002                                *
;******************************************************************************

;******************************************************************************
;* GLOBAL FILE PARAMETERS                                                     *
;*                                                                            *
;*   Architecture      : TMS320C671x                                          *
;*   Optimization      : Enabled at level 3                                   *
;*   Optimizing for    : Speed                                                *
;*                       Based on options: -o3, no -ms                        *
;*   Endian            : Little                                               *
;*   Interrupt Thrshld : Disabled                                             *
;*   Memory Model      : Small                                                *
;*   Calls to RTS      : Near                                                 *
;*   Pipelining        : Enabled                                              *
;*   Speculative Load  : Disabled                                             *
;*   Memory Aliases    : Presume are aliases (pessimistic)                    *
;*   Debug Info        : Debug                                                *
;*                                                                            *
;******************************************************************************

	.asg	A15, FP
	.asg	B14, DP
	.asg	B15, SP
	.global	$bss

	.file	"audio.c"

	.sect	".cinit:c"
	.align	8
	.field  	(CIR - $) - 8, 32
	.field  	_loadVal+0,32
	.field  	0,32			; _loadVal @ 0
	.sect	".text"
	.global	_loadVal
_loadVal:	.usect	".bss:c",4,4
	.sym	_loadVal,_loadVal, 4, 2, 32

	.sect	".cinit:c"
	.align	4
	.field  	0,32			; _oldLoad$1 @ 0
	.sect	".text"
_oldLoad$1:	.usect	".bss:c",4,4
	.sym	_oldLoad,_oldLoad$1, 4, 3, 32

	.sect	".cinit:c"
	.align	4
	.field  	1,32			; _direction$2 @ 0
	.sect	".text"
_direction$2:	.usect	".bss:c",4,4
	.sym	_direction,_direction$2, 4, 3, 32
;	C:\TIBETA\C6000\CGTOOLS\BIN\opt6x.exe -v6710 -v6710 -O3 c:\windows\TEMP\TI502245_2 c:\windows\TEMP\TI502245_4 
	.sect	".text"
	.global	_step
	.sym	_step,_step, 32, 2, 0
	.func	118

;******************************************************************************
;* FUNCTION NAME: _step                                                       *
;*                                                                            *
;*   Regs Modified     : A0,A1,B0,B4,B5,B6                                    *
;*   Regs Used         : A0,A1,B0,B3,B4,B5,B6,DP                              *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_step:
;** --------------------------------------------------------------------------*
	.line	2
	.line	5
           LDW     .D2T2   *+DP(_loadVal),B4 ; |122| 
           NOP             3
           MVK     .S1     800,A0            ; |122| 
           CMPGT   .L1X    B4,A0,A1          ; |122| 
	.line	6
   [ A1]   MVK     .S1     -1,A0             ; |123| 
   [ A1]   STW     .D2T1   A0,*+DP(_direction$2) ; |123| 
	.line	8
           CMPGT   .L2     B4,0,B0           ; |125| 
	.line	9
   [!B0]   MVK     .S2     1,B5              ; |126| 
   [!B0]   STW     .D2T2   B5,*+DP(_direction$2) ; |126| 
	.line	12
           LDW     .D2T2   *+DP(_direction$2),B6 ; |129| 
           NOP             3
           MVK     .S2     100,B5            ; |129| 
           MPYI    .M2     B5,B6,B5          ; |129| 
           NOP             8
           ADD     .D2     B4,B5,B4          ; |129| 
           STW     .D2T2   B4,*+DP(_loadVal) ; |129| 
	.line	16
           B       .S2     B3                ; |133| 
           NOP             5
           ; BRANCH OCCURS                   ; |133| 
	.endfunc	133,000000000h,0


	.sect	".text"
	.global	_main
	.sym	_main,_main, 32, 2, 0
	.func	37

;******************************************************************************
;* FUNCTION NAME: _main                                                       *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Local Frame Size  : 8 Args + 0 Auto + 4 Save = 12 byte                   *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
	.line	2
           STW     .D2T2   B3,*SP--(16)      ; |38| 
	.line	4
           B       .S1     _DSS_init         ; |40| 
           MVKL    .S2     RL0,B3            ; |40| 
           MVKH    .S2     RL0,B3            ; |40| 
           NOP             3
RL0:       ; CALL OCCURS                     ; |40| 
	.line	5
           B       .S1     _LOG_printf       ; |41| 
           MVKL    .S2     SL1+0,B4          ; |41| 
           MVKH    .S2     SL1+0,B4          ; |41| 
           MVKL    .S2     RL2,B3            ; |41| 
           MVKL    .S1     _trace,A4         ; |41| 

           STW     .D2T2   B4,*+SP(4)        ; |41| 
||         MVKH    .S2     RL2,B3            ; |41| 
||         MVKH    .S1     _trace,A4         ; |41| 

RL2:       ; CALL OCCURS                     ; |41| 
	.line	8
	.line	9
           LDW     .D2T2   *++SP(16),B3      ; |45| 
           NOP             4
           B       .S2     B3                ; |45| 
           NOP             5
           ; BRANCH OCCURS                   ; |45| 
	.endfunc	45,000080000h,16


	.sect	".text"
	.global	_load
	.sym	_load,_load, 32, 2, 0
	.func	99

;******************************************************************************
;* FUNCTION NAME: _load                                                       *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,DP,SP                                   *
;*   Local Frame Size  : 16 Args + 0 Auto + 4 Save = 20 byte                  *
;******************************************************************************
_load:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_prd_ms,4, 4, 17, 32
	.sym	_prd_ms,21, 4, 4, 32
           STW     .D2T2   B3,*SP--(24)      ; |100| 
           MV      .S2X    A4,B5             ; |100| 
	.line	6
           LDW     .D2T1   *+DP(_loadVal),A1 ; |104| 
           LDW     .D2T2   *+DP(_oldLoad$1),B4 ; |104| 
           NOP             4
           CMPEQ   .L1X    B4,A1,A2          ; |104| 
   [ A2]   B       .S1     L1                ; |104| 
           NOP             5
           ; BRANCH OCCURS                   ; |104| 
;** --------------------------------------------------------------------------*
	.line	7
           STW     .D2T1   A1,*+DP(_oldLoad$1) ; |105| 
	.line	8
           B       .S1     _LOG_printf       ; |106| 
           MVKL    .S2     SL2+0,B4          ; |106| 
           STW     .D2T2   B5,*+SP(12)       ; |106| 
           MVKL    .S2     RL4,B3            ; |106| 

           MVKH    .S2     SL2+0,B4          ; |106| 
||         STW     .D2T1   A1,*+SP(8)        ; |106| 
||         MVKL    .S1     _trace,A4         ; |106| 

           STW     .D2T2   B4,*+SP(4)        ; |106| 
||         MVKH    .S2     RL4,B3            ; |106| 
||         MVKH    .S1     _trace,A4         ; |106| 

RL4:       ; CALL OCCURS                     ; |106| 
           LDW     .D2T1   *+DP(_loadVal),A1
           NOP             4
;** --------------------------------------------------------------------------*
L1:    
	.line	12
   [!A1]   B       .S1     L2                ; |110| 
           NOP             5
           ; BRANCH OCCURS                   ; |110| 
;** --------------------------------------------------------------------------*
	.line	13
           B       .S1     _AUDIO_load       ; |111| 
           MVKL    .S2     RL6,B3            ; |111| 
           MVKH    .S2     RL6,B3            ; |111| 
           MV      .D1     A1,A4             ; |111| 
           NOP             2
RL6:       ; CALL OCCURS                     ; |111| 
;** --------------------------------------------------------------------------*
L2:    
	.line	15
           LDW     .D2T2   *++SP(24),B3      ; |113| 
           NOP             4
           B       .S2     B3                ; |113| 
           NOP             5
           ; BRANCH OCCURS                   ; |113| 
	.endfunc	113,000080000h,24


	.sect	".text"
	.sym	_error,_error, 32, 3, 0
	.func	86

;******************************************************************************
;* FUNCTION NAME: _error                                                      *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Local Frame Size  : 8 Args + 0 Auto + 4 Save = 12 byte                   *
;******************************************************************************
_error:
;** --------------------------------------------------------------------------*
	.line	2
           STW     .D2T2   B3,*SP--(16)      ; |87| 
	.line	3
           B       .S1     _LOG_printf       ; |88| 
           MVKL    .S2     SL3+0,B4          ; |88| 
           MVKL    .S2     RL8,B3            ; |88| 
           MVKH    .S2     SL3+0,B4          ; |88| 
           MVKL    .S1     _trace,A4         ; |88| 

           STW     .D2T2   B4,*+SP(4)        ; |88| 
||         MVKH    .S2     RL8,B3            ; |88| 
||         MVKH    .S1     _trace,A4         ; |88| 

RL8:       ; CALL OCCURS                     ; |88| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: bad loop structure
;*----------------------------------------------------------------------------*
L3:    
	.line	7
           B       .S1     L3                ; |92| 
           NOP             5
           ; BRANCH OCCURS                   ; |92| 
;** --------------------------------------------------------------------------*
	.endfunc	93,000080000h,16


	.sect	".text"
	.global	_audio
	.sym	_audio,_audio, 32, 2, 0
	.func	50

;******************************************************************************
;* FUNCTION NAME: _audio                                                      *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B0,B1,B2,B3,B4,*
;*                           B5,B6,B7,B8,B9,SP                                *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B0,B1,B2,B3,B4,*
;*                           B5,B6,B7,B8,B9,SP                                *
;*   Local Frame Size  : 0 Args + 0 Auto + 12 Save = 12 byte                  *
;******************************************************************************
_audio:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_in,4, 24, 17, 32, _PIP_Obj
	.sym	_out,20, 24, 17, 32, _PIP_Obj
	.sym	_i,3, 4, 4, 32
	.sym	_size,21, 4, 4, 32
	.sym	_dst,22, 30, 4, 32
	.sym	_src,7, 30, 4, 32
	.sym	_in,11, 24, 4, 32, _PIP_Obj
	.sym	_out,10, 24, 4, 32, _PIP_Obj
           STW     .D2T2   B3,*SP--(16)      ; |51| 
           STW     .D2T1   A11,*+SP(12)      ; |51| 
           STW     .D2T1   A10,*+SP(8)       ; |51| 

           MV      .D1     A4,A11
||         MV      .S1X    B4,A10

	.line	7
           LDW     .D1T1   *+A11(24),A1      ; |56| 
           NOP             4
   [!A1]   B       .S1     L4                ; |56| 
   [ A1]   LDW     .D1T1   *+A10(72),A1      ; |56| 
           NOP             4
           ; BRANCH OCCURS                   ; |56| 
;** --------------------------------------------------------------------------*
   [ A1]   B       .S1     L5                ; |56| 
           NOP             5
           ; BRANCH OCCURS                   ; |56| 
;** --------------------------------------------------------------------------*
L4:    
;***	; the preceding call never returns
	.line	8
           B       .S1     _error            ; |57| 
           MVKL    .S2     RL10,B3           ; |57| 
           MVKH    .S2     RL10,B3           ; |57| 
           NOP             3
RL10:      ; CALL OCCURS                     ; |57| 
;** --------------------------------------------------------------------------*
L5:    
	.line	12
           B       .S1     _PIP_get          ; |61| 
           MVKL    .S2     RL12,B3           ; |61| 
           MVKH    .S2     RL12,B3           ; |61| 
           MV      .D1     A11,A4            ; |61| 
           NOP             2
RL12:      ; CALL OCCURS                     ; |61| 
	.line	13
           B       .S1     _PIP_alloc        ; |62| 
           MVKL    .S2     RL14,B3           ; |62| 
           MV      .D1     A10,A4            ; |62| 
           MVKH    .S2     RL14,B3           ; |62| 
           NOP             2
RL14:      ; CALL OCCURS                     ; |62| 
	.line	16
           LDW     .D1T1   *+A11(8),A7       ; |65| 
	.line	17
           LDW     .D1T2   *+A10(56),B6      ; |66| 
	.line	19
           LDW     .D1T1   *+A11(12),A0      ; |68| 
           NOP             4
           MV      .S2X    A0,B5             ; |68| 
	.line	20
           STW     .D1T1   A0,*+A10(60)      ; |69| 
	.line	22
           CMPGT   .L2     B5,0,B0           ; |71| 
   [!B0]   B       .S1     L7                ; |71| 
   [ B0]   AND     .S1X    -4,B5,A8
   [ B0]   MV      .S2X    A7,B7
           NOP             3
           ; BRANCH OCCURS                   ; |71| 
;** --------------------------------------------------------------------------*
	.line	24
	.line	22
           ZERO    .D1     A3                ; |71| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: loop contains a call
;*----------------------------------------------------------------------------*
L6:    
	.line	24
           B       .S1     __remi            ; |73| 
           MVKL    .S2     RL16,B3           ; |73| 
           MVKH    .S2     RL16,B3           ; |73| 
           MV      .D2     B5,B4             ; |73| 
           MV      .D1     A3,A4             ; |73| 
           NOP             1
RL16:      ; CALL OCCURS                     ; |73| 
           ADDAW   .D1     A8,A4,A4          ; |73| 
           ADD     .D1     A7,A4,A4          ; |73| 

           LDW     .D2T2   *B7++,B4          ; |73| 
||         LDW     .D1T1   *A4,A4            ; |73| 

           NOP             4

           SHRU    .S1     A4,1,A4           ; |73| 
||         SHRU    .S2     B4,1,B4           ; |73| 

           ADD     .S2X    A4,B4,B4          ; |73| 
           STW     .D2T2   B4,*B6++          ; |73| 
	.line	25
           SUB     .D1     A0,1,A1
   [ A1]   B       .S1     L6                ; |74| 
           SUB     .D1     A0,1,A0
           ADD     .S1     1,A3,A3           ; |74| 
           NOP             3
           ; BRANCH OCCURS                   ; |74| 
;** --------------------------------------------------------------------------*
L7:    
	.line	29
           B       .S1     _PIP_put          ; |78| 
           MVKL    .S2     RL18,B3           ; |78| 
           MVKH    .S2     RL18,B3           ; |78| 
           MV      .D1     A10,A4            ; |78| 
           NOP             2
RL18:      ; CALL OCCURS                     ; |78| 
	.line	30
           B       .S1     _PIP_free         ; |79| 
           MVKL    .S2     RL20,B3           ; |79| 
           MV      .D1     A11,A4            ; |79| 
           MVKH    .S2     RL20,B3           ; |79| 
           NOP             2
RL20:      ; CALL OCCURS                     ; |79| 
	.line	31
           LDW     .D2T1   *+SP(12),A11      ; |80| 
           LDW     .D2T1   *+SP(8),A10       ; |80| 
           LDW     .D2T2   *++SP(16),B3      ; |80| 
           NOP             4
           B       .S2     B3                ; |80| 
           NOP             5
           ; BRANCH OCCURS                   ; |80| 
	.endfunc	80,000080c00h,16


;******************************************************************************
;* MARK THE END OF THE SCALAR INIT RECORD IN CINIT:C                          *
;******************************************************************************
CIR:	.sect	".cinit:c"
;******************************************************************************
;* STRINGS                                                                    *
;******************************************************************************
	.sect	".const"
SL1:	.string	"Audio example started!!",10,0
SL2:	.string	"load: new load = %d000 instructions every %d ms",0
SL3:	.string	"Error: audio signal falsely triggered!",0
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_PIP_alloc
	.global	_PIP_free
	.global	_PIP_get
	.global	_PIP_put
	.global	_LOG_printf
	.global	_DSS_init
	.global	_AUDIO_load
	.global	_trace
	.global	__remi

;***************************************************************
;* TYPE INFORMATION                                            *
;***************************************************************
	.sym	_Int, 0, 4, 13, 32
	.sym	_Int, 0, 4, 13, 32
	.sym	_Fxn, 0, 148, 13, 32
	.sym	_Arg, 0, 4, 13, 32
	.sym	_Uns, 0, 14, 13, 32
	.sym	_Ptr, 0, 16, 13, 32
	.stag	_FXN_Obj, 96
	.member	_fxn, 0, 148, 8, 32
	.member	_arg1, 32, 4, 8, 32
	.member	_arg0, 64, 4, 8, 32
	.eos
	.sym	_FXN_Obj, 0, 8, 13, 96,_FXN_Obj
	.stag	_STS_Obj, 192
	.member	_numh, 0, 4, 8, 32
	.member	_numl, 32, 4, 8, 32
	.member	_acch, 64, 4, 8, 32
	.member	_accl, 96, 4, 8, 32
	.member	_maxh, 128, 4, 8, 32
	.member	_maxl, 160, 4, 8, 32
	.eos
	.sym	_STS_Obj, 0, 8, 13, 192,_STS_Obj
	.stag	_PIP_Obj, 800
	.member	_threshold, 0, 14, 8, 32
	.member	_preaderTakeProbe, 32, 24, 8, 32, _PIP_Obj
	.member	_readerAddr, 64, 16, 8, 32
	.member	_readerSize, 96, 14, 8, 32
	.member	_readerCurdesc, 128, 16, 8, 32
	.member	_pnotifyReader, 160, 24, 8, 32, _FXN_Obj
	.member	_readerNumFrames, 192, 14, 8, 32
	.member	_preaderGiveProbe, 224, 24, 8, 32, _PIP_Obj
	.member	_pwriterNumFrames, 256, 30, 8, 32
	.member	_notifyWriter, 288, 8, 8, 96, _FXN_Obj
	.member	_preaderSts, 384, 24, 8, 32, _STS_Obj
	.member	_pwriterTakeProbe, 416, 24, 8, 32, _PIP_Obj
	.member	_writerAddr, 448, 16, 8, 32
	.member	_writerSize, 480, 14, 8, 32
	.member	_writerCurdesc, 512, 16, 8, 32
	.member	_pnotifyWriter, 544, 24, 8, 32, _FXN_Obj
	.member	_writerNumFrames, 576, 14, 8, 32
	.member	_pwriterGiveProbe, 608, 24, 8, 32, _PIP_Obj
	.member	_preaderNumFrames, 640, 30, 8, 32
	.member	_notifyReader, 672, 8, 8, 96, _FXN_Obj
	.member	_pwriterSts, 768, 24, 8, 32, _STS_Obj
	.eos
	.sym	_PIP_Obj, 0, 8, 13, 800,_PIP_Obj
	.sym	_PIP_Handle, 0, 24, 13, 32,_PIP_Obj
	.stag	_LOG_Event, 128
	.member	_seqnum, 0, 14, 8, 32
	.member	_val1, 32, 4, 8, 32
	.member	_val2, 64, 4, 8, 32
	.member	_val3, 96, 4, 8, 32
	.eos
	.sym	_LOG_Event, 0, 8, 13, 128,_LOG_Event
	.stag	_LOG_Obj, 192
	.member	_bufend, 0, 20, 8, 32
	.member	_flag, 32, 14, 8, 32
	.member	_seqnum, 64, 14, 8, 32
	.member	_curptr, 96, 24, 8, 32, _LOG_Event
	.member	_lenmask, 128, 14, 8, 32
	.member	_bufbeg, 160, 24, 8, 32, _LOG_Event
	.eos
	.sym	_LOG_Handle, 0, 24, 13, 32,_LOG_Obj
	.sym	_String, 0, 18, 13, 32
