From: SourceForge.net <no...@so...> - 2004-02-17 21:43:24
|
Feature Requests item #899102, was opened at 2004-02-17 21:37 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=350599&aid=899102&group_id=599 Category: None Group: None Status: Open Priority: 5 Submitted By: Mika Rasimus (rasimus) Assigned to: Nobody/Anonymous (nobody) Summary: Pretty unoptimized asm code Initial Comment: Very shortened example of my problem: "code char *text" -pointer converted to an "unsigned long" and passed as a parameter to an another function: ;text Allocated to registers r2 r3 ;k Allocated to registers r5 ;Interf.c:251: BYTE printT(code char *text) ... (here's some unincluded code) 00104$: ;Interf.c:257: k=lueFlaCode((LONG) text); ; genIpush push ar4 ; genCast mov ar5,r2 mov ar6,r3 mov r7,#0x00 mov r4,#0x00 ; genCall mov dpl,r5 mov dph,r6 mov b,r7 mov a,r4 lcall _lueFlaCode mov r4,dpl ; genAssign mov ar5,r4 A lot of unnecessary movs that could be easily avoided if the optimizer would keep a track of where unchanged register values finally end up to. Please improve this part a bit. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=350599&aid=899102&group_id=599 |