;****************************************************************************** ;* TMS320C3x/4x ANSI C Code Generator Version 5.00 * ;* Date/Time created: Tue Feb 10 21:32:57 1998 * ;****************************************************************************** .regalias ; enable floating point register aliases fp .set ar3 FP .set ar3 ;****************************************************************************** ;* GLOBAL FILE PARAMETERS * ;* * ;* Optimization : Always Choose Smaller Code Size * ;* Memory : Small Memory Model * ;* Float-to-Int : Normal Conversions (round toward -inf) * ;* Multiply : in Software (32 bits) * ;* Memory Info : Unmapped Memory Exists * ;* Repeat Loops : Use RPTS and/or RPTB * ;* Calls : Normal Library ASM calls * ;* Debug Info : No Debug Info * ;****************************************************************************** ; C:\C3XTOOLS\AC30.EXE loopall c:\windows\temp\loopall.if .sect ".cinit" .field IR_1,32 .field _AICSEC+0,32 .field 5676,32 ; _AICSEC[0] @ 0 .field 1,32 ; _AICSEC[1] @ 32 .field 18578,32 ; _AICSEC[2] @ 64 .field 103,32 ; _AICSEC[3] @ 96 IR_1: .set 4 .sect ".text" .global _AICSEC .bss _AICSEC,4 .sect ".cinit" .field 1,32 .field _PBASE+0,32 .field 8421376,32 ; _PBASE @ 0 .sect ".text" .global _PBASE .bss _PBASE,1 .sect ".text" .global _AICSET ;****************************************************************************** ;* FUNCTION NAME: _AICSET * ;* * ;* Architecture : TMS320C30 * ;* Calling Convention : Stack Parameter Convention * ;* Function Uses Regs : r0,r1,ar0,ar1,ir0,st * ;* Regs Saved : * ;* Stack Frame : Full (Frame Pointer in AR3) * ;* Total Frame Size : 2 Call + 0 Parm + 1 Auto + 0 SOE = 3 bytes * ;****************************************************************************** _AICSET: push fp ldiu @_PBASE+0,ar0 ldiu 1,r0 sti r0,*+ar0(40) ldiu 961,r0 ldiu @_PBASE+0,ar0 ldiu sp,fp sti r0,*+ar0(32) addi 1,sp LDI 00000002h,IOF ldiu 0,r0 sti r0,*+fp(1) ldiu *+fp(1),r0 cmpi 50,r0 bge L3 ; Branch ; Branch Occurs to L3 L2: ldiu 1,r0 addi *+fp(1),r0 sti r0,*+fp(1) ldiu *+fp(1),r0 cmpi 50,r0 blt L2 ; Branch ; Branch Occurs to L2 L3: ldiu @_PBASE+0,ar0 ldiu 305,r0 sti r0,*+ar0(66) ldiu @_PBASE+0,ar0 sti r0,*+ar0(67) ldiu @_PBASE+0,ar0 ldiu @CL1,r0 sti r0,*+ar0(64) ldiu @_PBASE+0,ar0 ldiu 0,r0 sti r0,*+ar0(72) OR 00000006h,IOF sti r0,*+fp(1) ldiu *+fp(1),r0 cmpi 4,r0 bge L8 ; Branch ; Branch Occurs to L8 L4: ldiu @_PBASE+0,ar0 ldiu 2,r0 and *+ar0(64),r0 beq L4 ; Branch ; Branch Occurs to L4 ldiu 3,r0 sti r0,*+ar0(72) L6: ldiu @_PBASE+0,ar0 ldiu 2,r0 and *+ar0(64),r0 beq L6 ; Branch ; Branch Occurs to L6 ldiu @CL2,ar1 ldiu *+fp(1),ir0 ldiu 1,r0 ldiu *+ar1(ir0),r1 sti r1,*+ar0(72) addi *+fp(1),r0 sti r0,*+fp(1) ldiu *+fp(1),r0 cmpi 4,r0 blt L4 ; Branch ; Branch Occurs to L4 L8: ldiu *-fp(1),ir0 bud ir0 nop subi 3,sp ; unsigned ldiu *fp,fp ; Branch Occurs to ir0 .sect ".text" .global _UPDATE_SAMPLE ;****************************************************************************** ;* FUNCTION NAME: _UPDATE_SAMPLE * ;* * ;* Architecture : TMS320C30 * ;* Calling Convention : Stack Parameter Convention * ;* Function Uses Regs : r0,ar0,st * ;* Regs Saved : * ;* Stack Frame : Full (Frame Pointer in AR3) * ;* Total Frame Size : 2 Call + 1 Parm + 1 Auto + 0 SOE = 4 bytes * ;****************************************************************************** _UPDATE_SAMPLE: push fp ldiu sp,fp addi 1,sp L11: ldiu @_PBASE+0,ar0 ldiu 2,r0 and *+ar0(64),r0 beq L11 ; Branch ; Branch Occurs to L11 ldiu *-fp(2),r0 ash 2,r0 sti r0,*+ar0(72) ldiu @_PBASE+0,ar0 ldiu *+ar0(76),r0 ash 16,r0 ash -18,r0 ;asr sti r0,*+fp(1) ldiu *-fp(1),ar0 bud ar0 nop subi 3,sp ; unsigned ldiu *fp,fp ; Branch Occurs to ar0 .sect ".text" .global _main ;****************************************************************************** ;* FUNCTION NAME: _main * ;* * ;* Architecture : TMS320C30 * ;* Calling Convention : Stack Parameter Convention * ;* Function Uses Regs : r0,sp * ;* Regs Saved : * ;* Stack Frame : Full (Frame Pointer in AR3) * ;* Total Frame Size : 2 Call + 0 Parm + 2 Auto + 0 SOE = 4 bytes * ;****************************************************************************** _main: push fp ldiu sp,fp addi 2,sp call _AICSET ; Call Occurs L15: ldiu *+fp(2),r0 push r0 call _UPDATE_SAMPLE ; Call Occurs sti r0,*+fp(1) bud L15 nop subi 1,sp ; unsigned sti r0,*+fp(2) ; Branch Occurs to L15 ;****************************************************************************** ;* CONSTANT TABLE * ;****************************************************************************** .sect ".const" .bss CL1,1 .bss CL2,1 .sect ".cinit" .field 2,32 .field CL1+0,32 .field 244777728,32 .field _AICSEC,32 .sect ".text"