Forum Discussion
Altera_Forum
Honored Contributor
20 years agoHi Scott:
But I can't find the corresponding code in Disassembly window. So it might be optimized, am I right? But my optimization level is -O0. Can you help me to try the code? SOURCE CODE void Fast_Copy_In_ASM(alt_u32* pSource, alt_u32* pDest, alt_u32 length) { asm volatile ( "Fast_Copy_In_ASM_Loop1: ldwio r7,0(r4)" " stwio r7,0(r5)" " addi r5,r5,4" " addi r4,r4,4" " addi r6,r6,-4" " bne r6,zero,Fast_Copy_In_ASM_Loop1 " \ ); //asm("Fast_Copy_In_ASM_Loop: ldwio r7,0(r4)"); //asm("stwio r7,0(r5)"); //asm("addi r5,r5,4");//increase read_data to point to next byte //asm("addi r4,r4,4");//increase read_data to point to next byte //asm("addi r6,r6,-4");//decrease read_length //asm("bne r6,zero,Fast_Copy_In_ASM_Loop");//CWG2 } Disassembly code <span style="color:red"><span style="color:blue">void Fast_Copy_In_ASM(alt_u32* pSource, alt_u32* pDest, alt_u32 length) { 10053f4: defffc04 addi sp,sp,-16 10053f8: df000315 stw fp,12(sp) 10053fc: d839883a mov fp,sp 1005400: e1000015 stw r4,0(fp) 1005404: e1400115 stw r5,4(fp) 1005408: e1800215 stw r6,8(fp) 0100540c <Fast_Copy_In_ASM_Loop1>: asm volatile ( 100540c: 29c00037 ldwio r7,0(r5) "Fast_Copy_In_ASM_Loop1: ldwio r7,0(r4)" " stwio r7,0(r5)" " addi r5,r5,4" " addi r4,r4,4" " addi r6,r6,-4" " bne r6,zero,Fast_Copy_In_ASM_Loop1 " \ ); //asm("Fast_Copy_In_ASM_Loop: ldwio r7,0(r4)"); //asm("stwio r7,0(r5)"); //asm("addi r5,r5,4");//increase read_data to point to next byte //asm("addi r4,r4,4");//increase read_data to point to next byte //asm("addi r6,r6,-4");//decrease read_length //asm("bne r6,zero,Fast_Copy_In_ASM_Loop");//CWG2 } 1005410: df000317 ldw fp,12(sp) 1005414: dec00404 addi sp,sp,16 1005418: f800283a ret</span></span> Thanks a lot! David