From: SourceForge.net <no...@so...> - 2006-10-04 14:01:25
|
Bugs item #1570701, was opened at 2006-10-04 10:01 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1570701&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Icode generator Group: None Status: Open Resolution: None Priority: 5 Submitted By: dfulab (dfulab) Assigned to: Nobody/Anonymous (nobody) Summary: peephole - not replacing code from multiline macros Initial Comment: Issue: If a code sequence tom be replaced is from a multi-line macro, peephole doesn't see it. Source: sdcc-src-2.6.0.tar.gz, Win32 VC++ 6.0. with the following "fixes" to compile. - fixing LF to CR/LF in VC++ project file: sdcc.dsw - replacing references to "afxres.h" with "winres.h" in support\scripts\resource.rc (VC++ issue when mfc not installed) How to reproduce it: - Replace src\z80\peeph.def with supplied peeph.def and Rebuild - compile with command: sdcc -mz80 test.c (ignore error messages as they are unrelated) Input: !ldahlsp macro (from src\z80\mappings.i) is used during code generation { "ldahlsp", "ld hl,#%d\n" "\tadd\thl,sp" }, - peeph.def has one rule that targets the expanded code replace { ld hl,%1 add hl,sp } by { ;fake test rule ldahlsp %1 } Output: test.asm, lines: 53-56 add ix,sp ld hl,#-2048 \ these are expanded macro add hl,sp / ld sp,hl The expanded macro should have been replaced by ldahlsp %-2048 (Note: ldahlsp is my made up instruction) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1570701&group_id=599 |