From 2fa210072055dd1d0dccd08192a6a6039d3ef8b9 Mon Sep 17 00:00:00 2001 From: bernhardheld Date: Sun, 19 Jan 2003 17:41:58 +0000 Subject: [PATCH] ../m git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2160 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 15 ++++++++++--- src/SDCCmain.c | 11 +++++----- src/SDCCpeeph.c | 3 +-- src/ds390/peeph.def | 33 ++++++++++++++++++++++++---- src/mcs51/peeph.def | 33 ++++++++++++++++++++++++---- support/regression/Makefile | 8 +++---- support/regression/generate-cases.py | 6 ++--- 7 files changed, 84 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 922d9acd..7d65dcc2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,15 @@ 2003-01-19 Bernhard Held - * moved tinitalk to device/examples/ds390 + * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure + * src/SDCCpeeph.c (replaceRule): fix bug #663503 + * support/regression/Makefile: separate temp files for ports + * support/regression/generate-cases.py: separate temp files for ports + * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b + * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b + +2003-01-19 Bernhard Held + + * moved tinitalk to device/examples/ds390 2003-01-14 Bernhard Held @@ -30,7 +39,7 @@ * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking * src/SDCCutil.c (join): ugly bug: missing '\0' - * as/mcs51/lkmem.c (summary): sp on address 7 is save + * as/mcs51/lkmem.c (summary): sp on address 7 is safe 2003-01-11 Bernhard Held @@ -387,7 +396,7 @@ * support/regression/tests/bug-524691.c: made it a little less shy - * src/SDCCast.c (decorateType): fixed bug #524697 + * src/SDCCast.c (decorateType): fixed bug #524697 * src/SDCCast.c: made some lineno improvements diff --git a/src/SDCCmain.c b/src/SDCCmain.c index 8cd269b1..7d9ae844 100644 --- a/src/SDCCmain.c +++ b/src/SDCCmain.c @@ -1194,7 +1194,7 @@ linkEdit (char **envp) { FILE *lnkfile; char *segName, *c; - int i; + int i, system_ret; /* first we need to create the .lnk file */ sprintf (scratchFileName, "%s.lnk", dstFileName); @@ -1350,10 +1350,7 @@ linkEdit (char **envp) buildCmdLine2 (buffer, port->linker.mcmd); } - if (my_system (buffer)) - { - exit (1); - } + system_ret = my_system (buffer); /* TODO: most linker don't have a -o parameter */ /* -o option overrides default name? */ if (fullDstFileName) @@ -1392,6 +1389,10 @@ linkEdit (char **envp) strcpy (q, "mem"); rename (scratchFileName, fullDstFileName); } + if (system_ret) + { + exit (1); + } } /*-----------------------------------------------------------------*/ diff --git a/src/SDCCpeeph.c b/src/SDCCpeeph.c index 070d9023..3adf8fce 100644 --- a/src/SDCCpeeph.c +++ b/src/SDCCpeeph.c @@ -836,8 +836,7 @@ replaceRule (lineNode ** shead, lineNode * stail, peepRule * pr) (*shead)->prev->next = lhead; lhead->prev = (*shead)->prev; } - else - *shead = lhead; + *shead = lhead; /* now for the tail */ if (stail && stail->next) { diff --git a/src/ds390/peeph.def b/src/ds390/peeph.def index 9cefcc7d..86bddf16 100644 --- a/src/ds390/peeph.def +++ b/src/ds390/peeph.def @@ -2367,10 +2367,35 @@ replace { } replace { - mov r%1,a - mov a,ar%1 + sjmp %1 +%2: + mov %3,%4 +%5: + ret } by { - mov r%1,a - ; Peephole 237 removed redundant move + ; Peephole 237a removed sjmp to ret + ret +%2: + mov %3,%4 +%1: + ret } +replace { + sjmp %1 +%2: + mov %3,%4 + mov dpl,%6 + mov dph,%7 +%5: + ret +} by { + ; Peephole 237b removed sjmp to ret + ret +%2: + mov %3,%4 + mov dpl,%6 + mov dph,%7 +%1: + ret +} diff --git a/src/mcs51/peeph.def b/src/mcs51/peeph.def index 51def27f..ea06c71e 100644 --- a/src/mcs51/peeph.def +++ b/src/mcs51/peeph.def @@ -2070,10 +2070,35 @@ replace { } replace { - mov r%1,a - mov a,ar%1 + sjmp %1 +%2: + mov %3,%4 +%5: + ret } by { - mov r%1,a - ; Peephole 237 removed redundant move + ; Peephole 237a removed sjmp to ret + ret +%2: + mov %3,%4 +%1: + ret } +replace { + sjmp %1 +%2: + mov %3,%4 + mov dpl,%6 + mov dph,%7 +%5: + ret +} by { + ; Peephole 237b removed sjmp to ret + ret +%2: + mov %3,%4 + mov dpl,%6 + mov dph,%7 +%1: + ret +} diff --git a/support/regression/Makefile b/support/regression/Makefile index 888d7f07..a6301688 100644 --- a/support/regression/Makefile +++ b/support/regression/Makefile @@ -146,11 +146,11 @@ SDCCFLAGS += -Ifwk/include -Itests # Rule to generate the iterations of a test suite off the soure suite. $(PORT_CASES_DIR)/%/iterations.stamp: $(TESTS_DIR)/%.c $(GENERATE_CASES) echo Processing $< - rm -rf $(CASES_DIR)/$(TESTS_NAME) - mkdir -p $(CASES_DIR)/$(TESTS_NAME) + rm -rf $(CASES_DIR)/$(PORT)/$(TESTS_NAME) + mkdir -p $(CASES_DIR)/$(PORT)/$(TESTS_NAME) mkdir -p `dirname $@` - python $(GENERATE_CASES) $< > /dev/null - cp $(CASES_DIR)/$(TESTS_NAME)/*.c `dirname $@` + python $(GENERATE_CASES) $< $(CASES_DIR)/$(PORT) > /dev/null + cp $(CASES_DIR)/$(PORT)/$(TESTS_NAME)/*.c `dirname $@` touch $@ # Rule linking the combined results log to all of the files in the diff --git a/support/regression/generate-cases.py b/support/regression/generate-cases.py index a7dd57b4..18b55e9e 100644 --- a/support/regression/generate-cases.py +++ b/support/regression/generate-cases.py @@ -5,7 +5,7 @@ import sys, re, tempfile, os # Globals # Directory that the generated files should be placed into -outdir = 'gen' +outdir = sys.argv[2] # Start of the test function table definition testfuntableheader = """ @@ -177,9 +177,9 @@ class InstanceGenerator: os.remove(self.tmpname) # Check and parse the command line arguments -if len(sys.argv) < 2: +if len(sys.argv) < 3: # PENDING: How to throw an error? - print "usage: generate-cases.py template.c" + print "usage: generate-cases.py template.c outdir" # Input name is the first arg. -- 2.30.2