diff --git a/.travis.yml b/.travis.yml index eae13f70e..a11412230 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: - c install: - - sudo apt-get install linuxdoc-tools linuxdoc-tools-info binutils-mingw-w64-i686 gcc-mingw-w64-i686 + - sudo apt-get install linuxdoc-tools linuxdoc-tools-info binutils-mingw-w64-i686 gcc-mingw-w64-i686 sshpass script: - make bin USER_CFLAGS=-Werror - make lib QUIET=1 @@ -9,7 +9,8 @@ script: - make bin USER_CFLAGS=-Werror CROSS_COMPILE=i686-w64-mingw32- - make doc zip after_success: - - make -f Makefile.gh-pages + - make -f Makefile.travis env: global: - secure: "h+hoQdEHGPLNwaqGKmSaM8NBRDLc2X+W05VsnNG2Feq/wPv/AiBjONNlzN7jRf6D6f3aoPXaQ2Lc3bYWdxGvFRCmwiofdxkJI9n5L8HPHLZ2lf37MQsXmGJzoTFOvjPLj73H6HlbI9Ux0El3zO6hvalxiXj6TfoZ41dbhNyvpYk=" + - secure: "A4hMEe5RRfUtYjFGbT7QAvT1Tyo434N+/TiuQeQ4q0L46c79LnXuGQzbFLOFZshZiplLkJr7lFg466CoI1bf2L0cQOew/LesMhE75v0HQ7tZnExWhdpAk0ri6nWixbjn/dmQ0+HxjzJ48A44DMMBYcvSIsO4vflvuJ8etfSg42k=" diff --git a/Makefile.gh-pages b/Makefile.gh-pages deleted file mode 100644 index 4c6734ca6..000000000 --- a/Makefile.gh-pages +++ /dev/null @@ -1,21 +0,0 @@ -.PHONY: all - -.SUFFIXES: - -GH_PAGES = ../gh-pages - -all: - echo $(TRAVIS_COMMIT) | zip -z cc65 -ifdef GH_TOKEN - git clone --branch=gh-pages https://$(GH_TOKEN)@github.com/cc65/cc65.git $(GH_PAGES) - cd $(GH_PAGES) && git config user.name "Oliver Schmidt" - cd $(GH_PAGES) && git config user.email "ol.sc@web.de" - cd $(GH_PAGES) && git config push.default simple - cd $(GH_PAGES) && $(RM) -r doc download - cd $(GH_PAGES) && mkdir doc download - cp html/*.* $(GH_PAGES)/doc - cp cc65.zip $(GH_PAGES)/download/cc65-snapshot-win32.zip - cd $(GH_PAGES) && git add -A doc download - cd $(GH_PAGES) && git commit -m "Updated from commit $(TRAVIS_COMMIT)." - cd $(GH_PAGES) && git push -endif diff --git a/Makefile.travis b/Makefile.travis new file mode 100644 index 000000000..78ded63e6 --- /dev/null +++ b/Makefile.travis @@ -0,0 +1,36 @@ +.PHONY: all gh-pages sf-files + +.SUFFIXES: + +all: gh-pages sf-files + +GH_NAME = Oliver Schmidt +GH_MAIL = ol.sc@web.de +GH_PATH = ../doc + +gh-pages: +ifdef GH_TOKEN + @echo 'git clone --branch=gh-pages https://$$(GH_TOKEN)@github.com/cc65/doc.git $(GH_PATH)' + @git clone --branch=gh-pages https://$(GH_TOKEN)@github.com/cc65/doc.git $(GH_PATH) + cd $(GH_PATH) && git config user.name "$(GH_NAME)" + cd $(GH_PATH) && git config user.email "$(GH_MAIL)" + cd $(GH_PATH) && git config push.default simple + $(RM) $(GH_PATH)/*.* + cp html/*.* $(GH_PATH) + cd $(GH_PATH) && git add -A + -cd $(GH_PATH) && git commit -m "Updated from commit $(TRAVIS_COMMIT)." + cd $(GH_PATH) && git push -q +endif + +SF_USER = oliverschmidt +SF_HOST = frs.sourceforge.net +SF_FILE = /home/frs/project/cc65/cc65-snapshot-win64.zip + +SCPFLAGS = -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -q + +sf-files: +ifdef SF_PASS + echo $(TRAVIS_COMMIT) | zip -z cc65 + @echo 'sshpass -p $$(SF_PASS) scp $(SCPFLAGS) cc65.zip $(SF_USER)@$(SF_HOST):$(SF_FILE)' + @sshpass -p $(SF_PASS) scp $(SCPFLAGS) cc65.zip $(SF_USER)@$(SF_HOST):$(SF_FILE) +endif diff --git a/README.md b/README.md index 81805f03b..bf7d6dcde 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -[documentation](http://cc65.github.io/cc65/doc) +[documentation](http://cc65.github.io/doc) -[wiki](https://github.com/cc65/wiki/wiki) +[wiki](http://github.com/cc65/wiki/wiki) -[![build status](https://travis-ci.org/cc65/cc65.png)](https://travis-ci.org/cc65/cc65/builds) +[![build status](http://travis-ci.org/cc65/cc65.png)](http://travis-ci.org/cc65/cc65/builds) cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several diff --git a/doc/index.sgml b/doc/index.sgml index c77344865..7de8b26ce 100644 --- a/doc/index.sgml +++ b/doc/index.sgml @@ -2,7 +2,7 @@
cc65 Documentation Overview -<author><url url="https://github.com/cc65/cc65/"> +<author><url url="http://cc65.github.io/doc"> <date> <sect>Program documentation<p> diff --git a/src/cc65/coptstop.c b/src/cc65/coptstop.c index cf6392bd3..427d0bd13 100644 --- a/src/cc65/coptstop.c +++ b/src/cc65/coptstop.c @@ -766,8 +766,12 @@ static unsigned Opt_toseqax_tosneax (StackOpData* D, const char* BoolTransformer InsertEntry (D, X, D->IP++); /* Lhs load entries can be removed */ - D->Lhs.X.Flags |= LI_REMOVE; - D->Lhs.A.Flags |= LI_REMOVE; + if (LoadX->AM != AM65_IMM) { + D->Lhs.X.Flags |= LI_REMOVE; + } + if (LoadA->AM != AM65_IMM) { + D->Lhs.A.Flags |= LI_REMOVE; + } } else if ((D->Rhs.A.Flags & (LI_DIRECT | LI_RELOAD_Y)) == LI_DIRECT && (D->Rhs.X.Flags & (LI_DIRECT | LI_RELOAD_Y)) == LI_DIRECT) { @@ -790,8 +794,12 @@ static unsigned Opt_toseqax_tosneax (StackOpData* D, const char* BoolTransformer InsertEntry (D, X, D->IP++); /* Rhs load entries can be removed */ - D->Rhs.X.Flags |= LI_REMOVE; - D->Rhs.A.Flags |= LI_REMOVE; + if (LoadX->AM != AM65_IMM) { + D->Rhs.X.Flags |= LI_REMOVE; + } + if (LoadA->AM != AM65_IMM) { + D->Rhs.A.Flags |= LI_REMOVE; + } } else if ((D->Rhs.A.Flags & LI_DIRECT) != 0 && (D->Rhs.X.Flags & LI_DIRECT) != 0) { diff --git a/src/cc65/symtab.c b/src/cc65/symtab.c index 191daddad..1f63e9430 100644 --- a/src/cc65/symtab.c +++ b/src/cc65/symtab.c @@ -268,7 +268,9 @@ void EnterFunctionLevel (void) TagTab = S; /* Create and assign a new label table */ - LabelTab = NewSymTable (SYMTAB_SIZE_LABEL); + S = NewSymTable (SYMTAB_SIZE_LABEL); + S->PrevTab = LabelTab; + LabelTab = S; } @@ -286,6 +288,7 @@ void RememberFunctionLevel (struct FuncDesc* F) /* Don't delete the tables */ SymTab = SymTab->PrevTab; TagTab = TagTab->PrevTab; + LabelTab = LabelTab->PrevTab; }