make sdcc compatible with the compiler
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 5 Jul 2001 11:33:18 +0000 (11:33 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Thu, 5 Jul 2001 11:33:18 +0000 (11:33 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1025 4a8a32a2-be11-0410-ad9d-d568d2c75423

12 files changed:
device/lib/Makefile.in
doc/SDCCUdoc.lyx
src/SDCCast.c
src/SDCCglobl.h
src/SDCCglue.c
src/SDCCmain.c
src/SDCCmem.c
src/ds390/ralloc.c
src/mcs51/gen.c
src/mcs51/ralloc.c
src/z80/main.c
support/cpp2/configargs.h

index cae24b0c65990a30692973e50bbe5da5e375f938..569827a5963065ef750e89825e7ba90d84ae935c 100644 (file)
@@ -69,7 +69,6 @@ models:
          $(MAKE) CFLAGS="$(CFLAGS) --model-$$model" objects; \
          mv *.rel $$model; \
          mv *.asm $$model; \
-         mv *.cdb $$model; \
        done
 
 modelDS390:
@@ -79,7 +78,7 @@ modelDS390:
                $(MAKE) CFLAGS="$(CFLAGS) -mds390" objects; \
                cd ds390; $(MAKE); cd ..; \
                cp *.lib ds390; \
-               mv *.rel *.asm *.cdb ds390; \
+               mv *.rel *.asm ds390; \
        fi
 
 # Compiling and installing everything and runing test
index 2588fb554a62e877d2e3cbff00df7392fae1ecd5..013f18a5eaf1a038832b4e3472e37f08d82f5bed 100644 (file)
@@ -16,7 +16,7 @@
 \tocdepth 3
 \paragraph_separation indent
 \defskip medskip
-\quotes_language english
+\quotes_language swedish
 \quotes_times 2
 \papercolumns 1
 \papersides 1
@@ -24,7 +24,7 @@
 
 \layout Title
 
-SDCC Compiler User Guide
+lSDCC Compiler User Guide
 \layout Standard
 
 
@@ -99,7 +99,7 @@ inline assembler code
 
 \end_inset 
 
-.
+ .
 \layout Subsection
 
 Open Source
@@ -109,7 +109,7 @@ All packages used in this compiler system are
 \emph on 
 opensource
 \emph default 
-(freeware); source code for all the sub-packages (asxxxx assembler/linker,
+ (freeware); source code for all the sub-packages (asxxxx assembler/linker,
  pre-processor) are distributed with the package.
  This documentation is maintained using a freeware word processor (LyX).
  
@@ -131,6 +131,28 @@ This program is free software; you can redistribute it and/or modify it
  Help stamp out software-hoarding! 
 \layout Subsection
 
+Typographic conventions
+\layout Standard
+
+Throughout this manual, we will use the following convention.
+ Commands you have to type in are printed in 
+\family sans 
+\series bold 
+"sans serif"
+\series default 
+.
+
+\family default 
+ Code samples are printed in 
+\family typewriter 
+typewriter font.
+
+\family default 
+ Interesting items and new terms are printed in 
+\emph on 
+italicised type.
+\layout Subsection
+
 System Requirements
 \layout Standard
 
@@ -160,7 +182,7 @@ The SDCC home page at
  Some of the other tools (simulator and assembler) included with SDCC contain
  their own documentation and can be found in the source distribution.
  If you want the latest unreleased software, the complete source package
- is available directly by anonymous CVS on www.sourceforge.net.
+ is available directly by anonymous CVS on cvs.sdcc.sourceforge.net.
 \layout Section
 
 Installation
@@ -181,32 +203,30 @@ Bring up a command line terminal, such as xterm.
 
 
 \series medium 
-Unpack the file using a command like: tar -xzf sdcc-2.x.x.tgz, this will create
- a sub-directory called sdcc with all of the sources.
+Unpack the file using a command like: 
+\family sans 
+\series bold 
+"tar -xzf sdcc-2.x.x.tgz"
+\family default 
+\series medium 
+, this will create a sub-directory called sdcc with all of the sources.
 \layout Enumerate
 
 Change directory into the main SDCC directory, for example type: 
-\begin_inset Quotes eld
-\end_inset 
-
-cd sdcc
-\begin_inset Quotes erd
-\end_inset 
-
+\family sans 
+\series bold 
+"cd sdcc"
+\series default 
 .
 \layout Enumerate
 
 
 \series medium 
 Type 
-\begin_inset Quotes eld
-\end_inset 
-
-./configure
-\begin_inset Quotes erd
-\end_inset 
-
-
+\family sans 
+\series bold 
+"./configure"
+\family default 
 \series default 
 .
  This configures the package for compilation on your system.
@@ -215,13 +235,11 @@ Type
 
 \series medium 
 Type 
-\begin_inset Quotes eld
-\end_inset 
-
-make
-\begin_inset Quotes erd
-\end_inset 
-
+\family sans 
+\series bold 
+"make"
+\family default 
+\series medium 
 .
 
 \series default 
@@ -231,14 +249,10 @@ make
 
 \series medium 
 Type 
-\begin_inset Quotes eld
-\end_inset 
-
-make install
-\begin_inset Quotes erd
-\end_inset 
-
-
+\family sans 
+\series bold 
+"make install"
+\family default 
 \series default 
  as root
 \series medium 
@@ -266,7 +280,7 @@ Windows Install Using a Binary Package
 \layout Enumerate
 
 Download the binary package and unpack it using your favorite unpacking
- tool(gunzip, WinZip, etc).
+ tool (gunzip, WinZip, etc).
  This should unpack to a group of sub-directories.
  An example directory structure after unpacking is: c:
 \backslash 
@@ -358,7 +372,7 @@ selected parts of
 \series medium 
  the package
 \series default 
-(a large 80M byte sized dowload for the whole thing)
+ (a large 80M byte sized dowload for the whole thing)
 \series medium 
 .
 
@@ -386,13 +400,11 @@ Testing out the SDCC Compiler
 The first thing you should do after installing your SDCC compiler is to
  see if it runs.
  Type 
-\begin_inset Quotes eld
-\end_inset 
-
-sdcc --version
-\begin_inset Quotes erd
-\end_inset 
-
+\family sans 
+\series bold 
+"sdcc --version"
+\family default 
+\series default 
  at the prompt, and the program should run and tell you the version.
  If it doesn't run, or gives a message about not finding sdcc program, then
  you need to check over your installation.
@@ -401,8 +413,9 @@ sdcc --version
  for suggestions).
  Make sure that the sdcc program is in the bin folder, if not perhaps something
  did not install correctly.
-\layout Standard
+\newline 
 
+\newline 
 
 \series medium 
 SDCC binaries are commonly installed in a directory arrangement like this:
@@ -510,63 +523,34 @@ Make sure the compiler works on a very simple example.
 
 \newline 
 
-\family typewriter 
+\series medium 
 \emph default 
-main()
-\newline 
-{ 
-\layout Standard
-
-
-\family typewriter 
-int i;
-\layout Standard
-
-
-\family typewriter 
-i = 0;
-\layout Standard
-
-
-\family typewriter 
-i += 10;
-\newline 
-}
+Compile this using the following command: 
+\family sans 
+\series bold 
+"sdcc -c test.c"
 \family default 
-\emph on 
-
-\newline 
-
-\layout Standard
-
-
+\series default 
 \series medium 
-Compile this using the following command: 
-\begin_inset Quotes eld
-\end_inset 
-
-sdcc -c test.c
-\begin_inset Quotes erd
-\end_inset 
-
-.
- If all goes well, the compiler will generate a test.asm and test.rel file.
+If all goes well, the compiler will generate a test.asm and test.rel file.
  Congratulations, you've just compiled your first program with SDCC.
  We used the -c option to tell SDCC not to link the generated code, just
  to keep things simple for this step.
-\layout Standard
+\series default 
+
+\newline 
 
+\newline 
 
 \series medium 
 The next step is to try it with the linker.
  Type in 
-\begin_inset Quotes eld
-\end_inset 
-
-sdcc test.c
-\begin_inset Quotes erd
-\end_inset 
-
+\family sans 
+\series bold 
+"sdcc test.c"
+\family default 
+\series medium 
 .
  If all goes well the compiler will link with the libraries and produce
  a test.ihx output file.
@@ -584,63 +568,52 @@ usr/local/share/sdcc/lib directory
  
 \series medium 
 (see the Install trouble-shooting section for suggestions).
-\layout Standard
-
-
-\series medium 
-The final test is to ensure sdcc can use the standard header files and libraries.
- Edit test.c and change it to the following:
 \series default 
 
 \newline 
 
 \newline 
 
-\family typewriter 
+\series medium 
+The final test is to ensure sdcc can use the 
+\series default 
+standard
+\series medium 
+ header files and libraries.
+ Edit test.c and change it to the following:
+\layout LyX-Code
+
 #include <string.h>
-\newline 
-main()
-\newline 
-{ 
-\layout Standard
+\layout LyX-Code
 
+main() {
+\layout LyX-Code
 
+  
 \family typewriter 
 char str1[10];
-\layout Standard
-
+\layout LyX-Code
 
+  
 \family typewriter 
-strcpy(str1, 
-\begin_inset Quotes eld
-\end_inset 
-
-testing
-\begin_inset Quotes erd
-\end_inset 
+strcpy(str1, "testing");
+\layout LyX-Code
 
-);
-\newline 
 
-\newline 
+\family typewriter 
 }
-\family default 
-\emph on 
-
-\newline 
+\layout LyX-Code
 
 \layout Standard
 
 
 \series medium 
-Compile this by typing: 
-\begin_inset Quotes eld
-\end_inset 
-
-sdcc test.c
-\begin_inset Quotes erd
-\end_inset 
-
+Compile this by typing 
+\family sans 
+\series bold 
+"sdcc test.c"
+\family default 
+\series medium 
 .
  This should generate a test.ihx output file, and it should give no warnings
  such as not finding the string.h file.
@@ -677,7 +650,13 @@ The default installation assumes the libraries and header files are located
 
 .
  An alternative is to specify these locations as compiler options like this:
- sdcc -L /usr/local/sdcc/lib/small -I /usr/local/sdcc/include test.c
+\family sans 
+\series bold 
+"sdcc -L /usr/local/sdcc/lib/small -I /usr/local/sdcc/include test.c"
+\family default 
+\series default 
+.
 \layout Subsubsection
 
 SDCC does not compile correctly.
@@ -686,41 +665,41 @@ SDCC does not compile correctly.
 A thing to try is starting from scratch by unpacking the .tgz source package
  again in an empty directory.
  Confure it again and build like:
-\layout Standard
-
+\newline 
 
-\begin_inset Quotes eld
-\end_inset 
+\newline 
 
+\family sans 
+\series bold 
 make 2&>1 | tee make.log
-\begin_inset Quotes erd
-\end_inset 
-
+\family default 
+\series default 
 
-\layout Standard
+\newline 
 
+\newline 
 After this you can review the make.log file to locate the problem.
  Or a relevant part of this be attached to an email that could be helpful
  when requesting help from the mailing list.
 \layout Subsubsection
 
 What the 
-\begin_inset Quotes eld
+\begin_inset Quotes sld
 \end_inset 
 
 ./configure
-\begin_inset Quotes erd
+\begin_inset Quotes srd
 \end_inset 
 
  does
 \layout Standard
 
 The 
-\begin_inset Quotes eld
+\begin_inset Quotes sld
 \end_inset 
 
 ./configure
-\begin_inset Quotes erd
+\begin_inset Quotes srd
 \end_inset 
 
  command is a script that analyzes your system and performs some configuration
@@ -730,11 +709,11 @@ The
 \layout Subsubsection
 
 What the 
-\begin_inset Quotes eld
+\begin_inset Quotes sld
 \end_inset 
 
 make
-\begin_inset Quotes erd
+\begin_inset Quotes srd
 \end_inset 
 
  does.
@@ -745,7 +724,7 @@ This runs the GNU make tool, which automatically compiles all the source
 \layout Subsubsection
 
 What the 
-\begin_inset Quotes eld
+\begin_inset Quotes sld
 \end_inset 
 
 make install
@@ -775,8 +754,8 @@ y slower under Windows due to the overhead of the Cygwin tool set.
  
 \layout Standard
 
-The Cygwin package allows a Windows user to run a Unix command line interface(ba
-sh shell) and also implements a Unix like file system on top of Windows.
+The Cygwin package allows a Windows user to run a Unix command line interface
+ (bash shell) and also implements a Unix like file system on top of Windows.
  Included are many of the famous GNU software development tools which can
  augment the SDCC compiler.This is great if you have some experience with
  Unix command line tools and file system conventions, if not you may find
@@ -787,16 +766,19 @@ sh shell) and also implements a Unix like file system on top of Windows.
 Getting started with Cygwin
 \layout Standard
 
-SDCC is typically distributed as a tarred/gzipped file(.tgz).
+SDCC is typically distributed as a tarred/gzipped file (.tgz).
  This is a packed file similar to a .zip file.
- Cygwin includes the tools you will need to unpack the SDCC distribution(tar
- and gzip).
+ Cygwin includes the tools you will need to unpack the SDCC distribution
(tar and gzip).
  To unpack it, simply follow the instructions under the Linux/Unix install
  section.
  Before you do this you need to learn how to start a cygwin shell and some
  of the basic commands used to move files, change directory, run commands
  and so on.
  The change directory command is 
+\family sans 
+\series bold 
+
 \begin_inset Quotes eld
 \end_inset 
 
@@ -804,7 +786,13 @@ cd
 \begin_inset Quotes erd
 \end_inset 
 
+
+\family default 
+\series default 
 , the move command is 
+\family sans 
+\series bold 
+
 \begin_inset Quotes eld
 \end_inset 
 
@@ -812,8 +800,14 @@ mv
 \begin_inset Quotes erd
 \end_inset 
 
+
+\family default 
+\series default 
 .
  To print the current working directory, type 
+\family sans 
+\series bold 
+
 \begin_inset Quotes eld
 \end_inset 
 
@@ -821,8 +815,14 @@ pwd
 \begin_inset Quotes erd
 \end_inset 
 
+
+\family default 
+\series default 
 .
  To make a directory, use 
+\family sans 
+\series bold 
+
 \begin_inset Quotes eld
 \end_inset 
 
@@ -830,6 +830,9 @@ mkdir
 \begin_inset Quotes erd
 \end_inset 
 
+
+\family default 
+\series default 
 .
 \layout Standard
 
@@ -858,7 +861,10 @@ Running SDCC as Native Compiled Executables
 
 If you use the pre-compiled binaries, the install directories for the libraries
  and header files may need to be specified on the sdcc command line like
- this: sdcc -L c:
+ this: 
+\family sans 
+\series bold 
+"sdcc -L c:
 \backslash 
 usr
 \backslash 
@@ -876,13 +882,22 @@ local
 \backslash 
 sdcc
 \backslash 
-include test.c if you are running outside of a Unix bash shell.
+include test.c"
+\family default 
+\series default 
+ if you are running outside of a Unix bash shell.
 \layout Standard
 
 If you have successfully installed and compiled SDCC with the Cygwin package,
  it is possible to compile into native .exe files by using the additional
  makefiles included for this purpose.
- For example, with the Borland 32-bit compiler you would run make -f Makefile.bcc.
+ For example, with the Borland 32-bit compiler you would run 
+\family sans 
+\series bold 
+"make -f Makefile.bcc"
+\family default 
+\series default 
+.
  A command line version of the Borland 32-bit compiler can be downloaded
  from the Inprise web site.
 \layout Subsection
@@ -918,99 +933,48 @@ configure
  name> is the final location for the sdcc executables and libraries, (default
  location is /usr/local).
  The installation process will create the following directory structure
- under the <directory name> specified.
+ under the <directory name> specified (if they do not already exist).
  
+\newline 
+
 \layout Standard
 
-bin/ - binary exectables (add to PATH environment variable) 
-\newline 
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-share/ 
-\newline 
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-sdcc/include/ - include header files 
+bin/ - binary exectables (add to PATH environment variable)
+\layout Standard
+
+bin/share/
+\layout Standard
+
+bin/share/sdcc/include/ - include header files
+\layout Standard
+
+bin/share/sdcc/lib/
+\layout Standard
+
+bin/share/sdcc/lib/small/ - Object & library files for small model library
+\layout Standard
+
+bin/share/sdcc/lib/large/ - Object & library files for large model library
+\layout Standard
+
+bin/share/sdcc/lib/ds390/ - Object & library files forDS80C390 library
 \newline 
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-sdcc/lib/ - 
+
 \newline 
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-small/ - Object & library files for small model library 
-\newline 
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-large/ - Object & library files for large model library 
-\newline 
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-\SpecialChar ~
-ds390/ - Object & library files forDS80C390 library
-\layout Standard
-
 The command 
-\layout Standard
+\family sans 
+\series bold 
 
+\begin_inset Quotes sld
+\end_inset 
 
-\series bold 
-\size large 
-\bar under 
-'./configure --prefix=/usr/local
+./configure --prefix=/usr/local
 \begin_inset Quotes erd
 \end_inset 
 
  
-\layout Standard
-
+\family default 
+\series default 
 will configure the compiler to be installed in directory /usr/local/bin.
 \layout Subsection
 
@@ -1029,6 +993,8 @@ SDCC is not just a compiler, but a collection of tools by various developers.
 You might want to look at the various executables which are installed in
  the bin directory.
  At the time of this writing, we find the following programs:
+\newline 
+
 \layout Standard
 
 
@@ -1061,7 +1027,7 @@ sdcpp
 
 
 \series bold 
-sdcpd
+sdcdb
 \series default 
  - The source debugger.
 \layout Standard
@@ -1075,7 +1041,7 @@ s51
 
 
 \series bold 
-linkz80, linkgbz80
+link-z80, link-gbz80
 \series default 
  - The Z80 and GameBoy Z80 linkers.
 \layout Standard
@@ -1092,8 +1058,9 @@ as-z80, as-gbz80
 packihx
 \series default 
  - A tool to pack Intel hex files.
-\layout Standard
+\newline 
 
+\newline 
 As development for other processors proceeds, this list will expand to include
  executables to support processors like AVR, PIC, etc.
 \layout Subsubsection
@@ -1101,54 +1068,49 @@ As development for other processors proceeds, this list will expand to include
 cpp ( C-Preprocessor)
 \layout Standard
 
-The preprocessor is extracted into the directory 
-\emph on 
-SDCCDIR/cpp
-\emph default 
-, it is a modified version of the GNU preprocessor.
+The preprocessor is a modified version of the GNU preprocessor.
  The C preprocessor is used to pull in #include sources, process #ifdef
  statements, #defines and so on.
 \layout Subsubsection
 
-asxxxx & aslink ( The assembler and Linkage Editor)
+asxxxx & aslink ( The Assembler and Linkage Editor)
 \layout Standard
 
 This is retargettable assembler & linkage editor, it was developed by Alan
- Baldwin, John Hartman created the version for 8051, and I (Sandeep) have
- some enhancements and bug fixes for it to work properly with the SDCC.
- This component is extracted into the directory 
-\emph on 
-SDCCDIR/asxxxx.
+ Baldwin.
+ John Hartman created the version for 8051, and I (Sandeep) have made some
+ enhancements and bug fixes for it to work properly with the SDCC.
 \layout Subsubsection
 
-SDCC - The compiler
+sdcc - The Compiler
 \layout Standard
 
 This is the actual compiler, it in turn uses the c-preprocessor and invokes
- the assembler and linkage editors.
- All files with the prefix 
-\emph on 
-SDCC 
-\emph default 
-are part of the compiler and are extracted into the the directory 
-\emph on 
-SDCCDIR.
+ the assembler and linkage editor.
 \layout Subsubsection
 
-S51 - Simulator
+s51 - Simulator
 \layout Standard
 
-s51 is a freeware, opensource simulator developed by Daniel Drotos <drdani@mazso
-la.iit.uni-miskolc.hu>.
- The executable is built as part of the build process, for more information
- visit Daniel's website at <http://mazsola.iit.uni-miskolc.hu/~drdani/embedded/s51/
->.
+S51 is a freeware, opensource simulator developed by Daniel Drotos 
+\begin_inset LatexCommand \url{mailto:drdani@mazsola.iit.uni-miskolc.hu}
+
+\end_inset 
+
+.
+ The executable is built as part of the build process.
+ For more information visit Daniel's website at 
+\begin_inset LatexCommand \url{http://mazsola.iit.uni-miskolc.hu/~drdani/embedded/s51}
+
+\end_inset 
+
+.
 \layout Subsubsection
 
-SDCDB - Source Level Debugger
+sdcdb - Source Level Debugger
 \layout Standard
 
-SDCDB is the companion source level debugger.
+Sdcdb is the companion source level debugger.
  The current version of the debugger uses Daniel's Simulator S51, but can
  be easily changed to use other simulators.
 \layout Section
@@ -1163,15 +1125,14 @@ Single Source File Projects
 \layout Standard
 
 For single source file 8051 projects the process is very simple.
- Compile your programs with the following command
-\layout Standard
-
-
-\size footnotesize 
-sdcc sourcefile.c
-\layout Standard
+ Compile your programs with the following command 
+\family sans 
+\series bold 
+"sdcc sourcefile.c".
 
-The above command will compile ,assemble and link your source file.
+\family default 
+\series default 
+ This will compile, assemble and link your source file.
  Output files are as follows.
 \layout Itemize
 
@@ -1221,6 +1182,8 @@ Projects with Multiple Source Files
 SDCC can compile only ONE file at a time.
  Let us for example assume that you have a project containing the following
  files.
+\newline 
+
 \layout Standard
 
 
@@ -1236,50 +1199,85 @@ foo2.c (contains some more functions)
 
 \size footnotesize 
 foomain.c (contains more functions and the function main)
-\layout Standard
-
-The first two files will need to be compiled separately with the commands
-\layout Standard
+\newline 
 
+\newline 
 
+\size default 
+The first two files will need to be compiled separately with the commands
 \size footnotesize 
-sdcc -c foo1.c
-\layout Standard
-
-
+\family sans 
+\series bold 
+\size default 
+"sdcc\SpecialChar ~
+-c\SpecialChar ~
+foo1.c"
+\family default 
+\series default 
 \size footnotesize 
-sdcc -c foo2.c
-\layout Standard
-
-Then compile the source file containing main and link the other files together
- with the following command.
-\layout Standard
-
-
+ and 
+\family sans 
+\series bold 
+\size default 
+"sdcc\SpecialChar ~
+-c\SpecialChar ~
+foo2.c"
+\family default 
+\series default 
 \size footnotesize 
-sdcc foomain.c foo1.rel foo2.rel
-\layout Standard
-
-Alternatively 
+.
+\size default 
+Then compile the source file containing the main() function and link the
+ files together with the following command: 
+\family sans 
+\series bold 
+"sdcc\SpecialChar ~
+foomain.c\SpecialChar ~
+foo1.rel\SpecialChar ~
+foo2.rel"
+\family default 
+\series default 
+.
+ Alternatively, foomain.c
 \emph on 
-foomain.c
 \emph default 
- can be separately compiled as well
-\layout Standard
-
-
+can be separately compiled as well: 
+\family sans 
+\series bold 
+"sdcc\SpecialChar ~
+-c\SpecialChar ~
+foomain.c"
+\family default 
+\series default 
 \size footnotesize 
-sdcc -c foomain.c 
-\layout Standard
+ and 
+\family sans 
+\series bold 
+\size default 
 
+\begin_inset Quotes sld
+\end_inset 
 
-\size footnotesize 
-sdcc foomain.rel foo1.rel foo2.rel
-\layout Standard
+sdcc foomain.rel foo1.rel foo2.rel"
+\newline 
 
-The file containing the main function MUST be the FIRST file specified in
- the command line , since the linkage editor processes file in the order
- they are presented to it.
+\newline 
+
+\family default 
+\series default 
+The file containing the main function
+\emph on 
+must
+\emph default 
+ be the 
+\emph on 
+first
+\emph default 
+ file specified in the command line, since the linkage editor processes
+ file in the order they are presented to it.
 \layout Subsubsection
 
 Projects with Additional Libraries
@@ -1425,20 +1423,122 @@ Preprocessor Options
 
 
 \series bold 
---compile-only(-c)
+-M
+\series default 
+ Tell the preprocessor to output a rule suitable for make describing the
+ dependencies of each object file.
+ For each source file, the preprocessor outputs one make-rule whose target
+ is the object file name for that source file and whose dependencies are
+ all the files `#include'd in it.
+ This rule may be a single line or may be continued with `
+\backslash 
+'-newline if it is long.
+ The list of rules is printed on standard output instead of the preprocessed
+ C program.
+ `-M' implies `-E'.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-C
 \series default 
+ Tell the preprocessor not to discard comments.
+ Used with the `-E' option.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-MM
 \size large 
+\bar under 
  
+\series default 
 \size default 
- will compile and assemble the source, but will not call the linkage editor.
+\bar default 
+Like `-M' but the output mentions only the user header files included with
+ `#include 
+\begin_inset Quotes eld
+\end_inset 
+
+file"'.
+ System header files included with `#include <file>' are omitted.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-Aquestion(answer)
+\series default 
+ Assert the answer answer for question, in case it is tested with a preprocessor
+ conditional such as `#if #question(answer)'.
+ `-A-' disables the standard assertions that normally describe the target
+ machine.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-Aquestion
+\series default 
+ (answer) Assert the answer answer for question, in case it is tested with
+ a preprocessor conditional such as `#if #question(answer)'.
+ `-A-' disables the standard assertions that normally describe the target
+ machine.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-Umacro
+\series default 
+ Undefine macro macro.
+ `-U' options are evaluated after all `-D' options, but before any `-include'
+ and `-imacros' options.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-dM
+\series default 
+ Tell the preprocessor to output only a list of the macro definitions that
+ are in effect at the end of preprocessing.
+ Used with the `-E' option.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-dD
+\series default 
+ Tell the preprocessor to pass all macro definitions into the output, in
+ their proper sequence in the rest of the output.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-dN
+\size large 
+\bar under 
+\series default 
+\size default 
+\bar default 
+Like `-dD' except that the macro arguments and contents are omitted.
+ Only `#define name' is included in the output.
 \layout Subsubsection
 
 Linker Options
-\layout Standard
+\layout List
+\labelwidthstring 00.00.0000
 
 
 \series bold 
---lib-path(-L)
+-L\SpecialChar ~
+--lib-path
 \bar under 
  
 \series default 
@@ -1448,7 +1548,8 @@ Linker Options
  The path name must be absolute.
  Additional library files may be specified in the command line.
  See section Compiling programs for more details.
-\layout Standard
+\layout List
+\labelwidthstring 00.00.0000
 
 
 \series bold 
@@ -1518,6 +1619,29 @@ Linker Options
  value is 0x80.
  The value entered can be in Hexadecimal or Decimal format, eg.
  --idata-loc 0x88 or --idata-loc 136.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+--out-fmt-ihx
+\bar under 
+\series default 
+\bar default 
+The linker output (final object code) is in Intel Hex format.
+ (This is the default option).
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+--out-fmt-s19
+\bar under 
+\series default 
+\bar default 
+The linker output (final object code) is in Motorola S19 format.
 \layout Subsubsection
 
 MCS51 Options
@@ -1553,28 +1677,6 @@ Generate code for Small Model programs see section Memory Models for more
 \labelwidthstring 00.00.0000
 
 
-\series bold 
---stack-auto
-\series default 
-\size large 
-\emph on 
-\size default 
-\emph default 
-All functions in the source file will be compiled as 
-\emph on 
-reentrant
-\emph default 
-, i.e.
- the parameters and local variables will be allocated on the stack.
- see section Parameters and Local Variables for more details.
- If this option is used all source files in the project should be compiled
- with this option.
-\layout List
-\labelwidthstring 00.00.0000
-
-
 \series bold 
 --xstack
 \series default 
@@ -1656,19 +1758,7 @@ DS390 Options
 
 
 \series bold 
---stack-auto
-\series default 
- See MCS51 section for description.
-\layout List
-\labelwidthstring 00.00.0000
-
---
-\series bold 
-model
-\series default 
--
-\series bold 
-flat24
+--model-flat24
 \series default 
 \size large 
 \emph on 
@@ -1686,8 +1776,7 @@ Generate 24-bit flat mode code.
 \series bold 
 --stack-10bit
 \series default 
- This option generates code for the 10 bit stack mode of the Dallas DS80C390
- part.
+ Generate code for the 10 bit stack mode of the Dallas DS80C390 part.
  This is the one and only that the ds390 code generator supports right now
  and is default when using -mds390.
  In this mode, the stack is located in the lower 1K of the internal RAM,
@@ -1715,64 +1804,10 @@ Other Options
 
 
 \series bold 
---callee-saves function1[,function2][,function3]....
-
+-c\SpecialChar ~
+--compile-only
 \series default 
- The compiler by default uses a caller saves convention for register saving
- across function calls, however this can cause unneccessary register pushing
- & popping when calling small functions from larger functions.
- This option can be used to switch the register saving convention for the
- function names specified.
- The compiler will not save registers when calling these functions, no extra
- code will be generated at the entry & exit for these functions to save
- & restore the registers used by these functions, this can SUBSTANTIALLY
- reduce code & improve run time performance of the generated code.
- In the future the compiler (with interprocedural analysis) will be able
- to determine the appropriate scheme to use for each function call.
- DO NOT use this option for built-in functions such as _muluint..., if this
- option is used for a library function the appropriate library function
- needs to be recompiled with the same option.
- If the project consists of multiple source files then all the source file
- should be compiled with the same --callee-saves option string.
- Also see Pragma Directive CALLEE-SAVES.
-\layout List
-\labelwidthstring 00.00.0000
-
-
-\series bold 
---debug
-\bar under 
-\series default 
-\bar default 
-When this option is used the compiler will generate debug information ,
- that can be used with the SDCDB.
- The debug information is collected in a file with .cdb extension.
- For more information see documentation for SDCDB.
-\layout List
-\labelwidthstring 00.00.0000
-
-
-\series bold 
---regextend
-\bar under 
-\series default 
-\bar default 
- This option will cause the compiler to define pseudo registers , if this
- option is used, all source files in the project should be compiled with
- this option.
- See section Register Extension for more details.
-\layout List
-\labelwidthstring 00.00.0000
-
-
-\series bold 
---peep-file
-\series default 
-<filename> This option can be used to use additional rules to be used by
- the peep hole optimizer.
- See section Peep Hole optimizations for details on how to write these rules.
+ will compile and assemble the source, but will not call the linkage editor.
 \layout List
 \labelwidthstring 00.00.0000
 
@@ -1788,112 +1823,93 @@ When this option is used the compiler will generate debug information ,
 
 
 \series bold 
--M
-\series default 
- Tell the preprocessor to output a rule suitable for make describing the
- dependencies of each object file.
- For each source file, the preprocessor outputs one make-rule whose target
- is the object file name for that source file and whose dependencies are
- all the files `#include'd in it.
- This rule may be a single line or may be continued with `
-\backslash 
-'-newline if it is long.
- The list of rules is printed on standard output instead of the preprocessed
- C program.
- `-M' implies `-E'.
-\layout List
-\labelwidthstring 00.00.0000
-
-
-\series bold 
--C
+--stack-auto
 \series default 
- Tell the preprocessor not to discard comments.
- Used with the `-E' option.
-\layout List
-\labelwidthstring 00.00.0000
-
-
-\series bold 
--MM
 \size large 
-\bar under 
+\emph on 
  
-\series default 
 \size default 
-\bar default 
-Like `-M' but the output mentions only the user header files included with
- `#include 
-\begin_inset Quotes eld
-\end_inset 
-
-file"'.
- System header files included with `#include <file>' are omitted.
+\emph default 
+All functions in the source file will be compiled as 
+\emph on 
+reentrant
+\emph default 
+, i.e.
+ the parameters and local variables will be allocated on the stack.
+ see section Parameters and Local Variables for more details.
+ If this option is used all source files in the project should be compiled
+ with this option.
 \layout List
 \labelwidthstring 00.00.0000
 
 
 \series bold 
--Aquestion(answer)
-\series default 
- Assert the answer answer for question, in case it is tested with a preprocessor
- conditional such as `#if #question(answer)'.
- `-A-' disables the standard assertions that normally describe the target
- machine.
-\layout List
-\labelwidthstring 00.00.0000
-
+--callee-saves function1[,function2][,function3]....
 
-\series bold 
--Aquestion
 \series default 
- (answer) Assert the answer answer for question, in case it is tested with
- a preprocessor conditional such as `#if #question(answer)'.
- `-A-' disables the standard assertions that normally describe the target
- machine.
+ The compiler by default uses a caller saves convention for register saving
+ across function calls, however this can cause unneccessary register pushing
+ & popping when calling small functions from larger functions.
+ This option can be used to switch the register saving convention for the
+ function names specified.
+ The compiler will not save registers when calling these functions, no extra
+ code will be generated at the entry & exit for these functions to save
+ & restore the registers used by these functions, this can SUBSTANTIALLY
+ reduce code & improve run time performance of the generated code.
+ In the future the compiler (with interprocedural analysis) will be able
+ to determine the appropriate scheme to use for each function call.
+ DO NOT use this option for built-in functions such as _muluint..., if this
+ option is used for a library function the appropriate library function
+ needs to be recompiled with the same option.
+ If the project consists of multiple source files then all the source file
+ should be compiled with the same --callee-saves option string.
+ Also see Pragma Directive CALLEE-SAVES.
 \layout List
 \labelwidthstring 00.00.0000
 
 
 \series bold 
--Umacro
+--debug
+\bar under 
 \series default 
- Undefine macro macro.
- `-U' options are evaluated after all `-D' options, but before any `-include'
- and `-imacros' options.
+\bar default 
+When this option is used the compiler will generate debug information ,
+ that can be used with the SDCDB.
+ The debug information is collected in a file with .cdb extension.
+ For more information see documentation for SDCDB.
 \layout List
 \labelwidthstring 00.00.0000
 
 
 \series bold 
--dM
+\emph on 
+--regextend
+\bar under 
 \series default 
- Tell the preprocessor to output only a list of the macro definitions that
- are in effect at the end of preprocessing.
- Used with the `-E' option.
+\bar default 
+ This option is obsolete and isn't supported anymore.
 \layout List
 \labelwidthstring 00.00.0000
 
 
 \series bold 
--dD
+\emph on 
+--noregparms
 \series default 
- Tell the preprocessor to pass all macro definitions into the output, in
- their proper sequence in the rest of the output.
+ This option is obsolete and isn't supported anymore.
 \layout List
 \labelwidthstring 00.00.0000
 
 
 \series bold 
--dN
-\size large 
-\bar under 
+--peep-file
 \series default 
-\size default 
-\bar default 
-Like `-dD' except that the macro arguments and contents are omitted.
- Only `#define name' is included in the output.
+<filename> This option can be used to use additional rules to be used by
+ the peep hole optimizer.
+ See section Peep Hole optimizations for details on how to write these rules.
 \layout List
 \labelwidthstring 00.00.0000
 
@@ -1978,29 +1994,6 @@ cyclomatic complexity
 \labelwidthstring 00.00.0000
 
 
-\series bold 
---out-fmt-ihx
-\bar under 
-\series default 
-\bar default 
-The linker output (final object code) is in Intel Hex format.
- (This is the default option).
-\layout List
-\labelwidthstring 00.00.0000
-
-
-\series bold 
---out-fmt-s19
-\bar under 
-\series default 
-\bar default 
-The linker output (final object code) is in Motorola S19 format.
-\layout List
-\labelwidthstring 00.00.0000
-
-
 \series bold 
 --nooverlay
 \series default 
@@ -2046,6 +2039,40 @@ The linker output (final object code) is in Motorola S19 format.
 \series default 
 <Value> Causes the linker to check if the interal ram usage is within limits
  of the given value.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+--nostdincl
+\series default 
+ This will prevent the compiler from passing on the default include path
+ to the preprocessor.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+--nostdlib
+\series default 
+ This will prevent the compiler from passing on the default library path
+ to the linker.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+--verbose
+\series default 
+ Shows the various actions the compiler is performing.
+\layout List
+\labelwidthstring 00.00.0000
+
+
+\series bold 
+-V
+\series default 
+ Shows the actual commands the compiler is executing.
 \layout Subsubsection
 
 Intermediate Dump Options
@@ -2130,7 +2157,7 @@ Will create a dump of iCode's, after live range analysis, into a file named
 \series bold 
 --dumlrange
 \series default 
- Will dump the life ranges for all symbols
+ Will dump the life ranges for all symbols.
 \layout List
 \labelwidthstring 00.00.0000
 
@@ -2520,33 +2547,39 @@ tion or division will NOT be overlayed since these are implemented using
 void set_error( unsigned char errcd) 
 \newline 
 {
-\layout Standard
-
-
-\family typewriter 
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 P3 = errcd;
 \newline 
 } 
 \newline 
 #pragma RESTORE 
+\newline 
+
 \newline 
 void some_isr () interrupt 2 using 1 
 \newline 
 {
-\layout Standard
-
-
-\family typewriter 
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 ...
-\layout Standard
-
-
-\family typewriter 
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 set_error(10);
-\layout Standard
-
-
-\family typewriter 
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 ...
  
 \newline 
@@ -2573,10 +2606,11 @@ Interrupt Service Routines
 
 SDCC allows interrupt service routines to be coded in C, with some extended
  keywords.
-\layout Standard
+\newline 
 
+\newline 
 
-\size small 
+\family typewriter 
 void timer_isr (void) interrupt 2 using 1 
 \newline 
 { 
@@ -2585,8 +2619,11 @@ void timer_isr (void) interrupt 2 using 1
  
 \newline 
 }
-\layout Standard
+\newline 
+
+\newline 
 
+\family default 
 The number following the 'interrupt' keyword is the interrupt number this
  routine will service.
  The compiler will insert a call to this routine in the interrupt vector
@@ -2851,15 +2888,15 @@ critical
  SDCC will generate code to disable all interrupts upon entry to a critical
  function and enable them back before returning.
  Note that nesting critical functions may cause unpredictable results.
-\newline 
-
-\newline 
-eg:
 \newline 
 
 \size small 
 
 \newline 
+
+\family typewriter 
+\size default 
 int foo () critical 
 \newline 
 { 
@@ -2873,7 +2910,7 @@ int foo () critical
 }
 \newline 
 
-\size default 
+\family default 
 
 \newline 
 The critical attribute maybe used with other attributes like 
@@ -2910,13 +2947,18 @@ The
 \newline 
 
 \newline 
+
+\family typewriter 
 data unsigned char counter;
 \newline 
 void simpleIterrupt(void) interrupt 1
 \newline 
 {
-\layout Standard
-
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 counter++;
 \newline 
 }
@@ -2926,123 +2968,192 @@ counter++;
 void nakedInterrupt(void) interrupt 2 _naked
 \newline 
 {
-\layout Standard
-
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 _asm
-\layout Standard
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+inc\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+_counter
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+reti\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+; MUST explicitly include ret in _naked function.
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+_endasm;
+\newline 
+}
+\family default 
+
+\newline 
+
+\newline 
+For an 8051 target, the generated simpleInterrupt looks like:
+\newline 
+
+\newline 
 
+\family typewriter 
+_simpleIterrupt:
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+push\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+acc
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+push\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+b
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+push\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+dpl
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+push\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+dph
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+push\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+psw
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 \SpecialChar ~
+mov\SpecialChar ~
 \SpecialChar ~
- inc\SpecialChar ~
- _counter
-\layout Standard
-
 \SpecialChar ~
 \SpecialChar ~
- reti\SpecialChar ~
 \SpecialChar ~
+psw,#0x00
+\newline 
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
+inc\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- ; MUST explicitly include ret in _naked function.
-\layout Standard
-
-_endasm;
-\newline 
-}
-\newline 
-
-\newline 
-For an 8051 target, the generated simpleInterrupt looks like:
-\newline 
-
+\SpecialChar ~
+\SpecialChar ~
+_counter
 \newline 
-_simpleIterrupt:
-\layout Standard
-
-push\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- acc
-\layout Standard
-
-push\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- b
-\layout Standard
-
-push\SpecialChar ~
+pop\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- dpl
-\layout Standard
-
-push\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- dph
-\layout Standard
-
-push\SpecialChar ~
+psw
+\newline 
 \SpecialChar ~
 \SpecialChar ~
- psw
-\layout Standard
-
-mov\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
+pop\SpecialChar ~
 \SpecialChar ~
- psw,#0x00
-\layout Standard
-
-inc\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- _counter
-\layout Standard
-
-pop\SpecialChar ~
+dph
+\newline 
+\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- psw
-\layout Standard
-
 pop\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- dph
-\layout Standard
-
-pop\SpecialChar ~
+\SpecialChar ~
+dpl
+\newline 
+\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- dpl
-\layout Standard
-
 pop\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- b
-\layout Standard
-
+\SpecialChar ~
+b
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 pop\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- acc
-\layout Standard
-
+\SpecialChar ~
+acc
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 reti
+\family default 
+
 \newline 
 
 \newline 
@@ -3050,22 +3161,30 @@ whereas nakedInterrupt looks like:
 \newline 
 
 \newline 
-_nakedInterrupt:
-\layout Standard
 
+\family typewriter 
+_nakedInterrupt:
+\newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 inc\SpecialChar ~
- _counter
-\layout Standard
-
-reti\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
+_counter
+\newline 
+\SpecialChar ~
+\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
+reti\SpecialChar ~
 \SpecialChar ~
 \SpecialChar ~
- ; MUST explicitly include ret(i) in _naked function.
+; MUST explicitly include ret(i) in _naked function.
+\family default 
+
 \newline 
 
 \newline 
@@ -3144,27 +3263,24 @@ Data items can be assigned an absolute address with the
 \emph on 
 at <address>
 \emph default 
- keyword, in addition to a storage class.
-\layout Standard
-
-eg.
-\layout Standard
+ keyword, in addition to a storage class, e.g.:
+\newline 
 
+\newline 
 
-\size small 
+\family typewriter 
 xdata at 0x8000 unsigned char PORTA_8255 ;
-\layout Standard
+\newline 
+
+\family default 
 
+\newline 
 In the above example the 
 \emph on 
 PORTA_8255
 \emph default 
  will be allocated to the location 0x8000 of the external ram.
-\layout Standard
-
-Note that is this feature is provided to give the programmer access to 
+ Note that this feature is provided to give the programmer access to 
 \emph on 
 memory mapped
 \emph default 
@@ -3175,21 +3291,22 @@ memory mapped
  variables that are declared without the absolute address, the assembler
  listing file (.lst) and the linker output files (<filename>.rst) and (<filename>.m
 ap) are a good places to look for such overlaps.
-\layout Standard
-
-Absolute address can be specified for variables in all storage classes.
-\layout Standard
-
+\newline 
 
-\size small 
-eg.
-\layout Standard
+\newline 
+Absolute address can be specified for variables in all storage classes,
+ e.g.:
+\newline 
 
+\newline 
 
-\size small 
+\family typewriter 
 bit at 0x02 bvar;
-\layout Standard
+\newline 
 
+\newline 
+
+\family default 
 The above example will allocate the variable at offset 0x02 in the bit-addressab
 le space.
  There is no real advantage to assigning absolute addresses to variables
@@ -3227,9 +3344,9 @@ Inline Assembler Code
 
 SDCC allows the use of in-line assembler with a few restriction as regards
  labels.
- All labels defined within inline assembler code HAS TO BE of the 
+ All labels defined within inline assembler code HAS TO BE of the form 
 \emph on 
-form nnnnn$
+nnnnn$
 \emph default 
  where nnnn is a number less than 100 (which implies a limit of utmost 100
  inline assembler labels 
@@ -3238,107 +3355,137 @@ per function)
 \noun default 
 .
  It is strongly recommended that each assembly instruction (including labels)
- be placed in a separate line ( as the example shows).
+ be placed in a separate line (as the example shows).
  When the 
 \series bold 
-\bar under 
 --peep-asm
 \series default 
-\bar default 
  command line option is used, the inline assembler code will be passed through
  the peephole optimizer, this might cause some unexpected changes in the
- inline assembler code, please go throught the peephole optimizer rules
- defined in file 'SDCCpeeph.def' carefully before using this option.
-\layout Standard
-
-
-\size small 
-eg
-\layout Standard
+ inline assembler code.
+ Please go throught the peephole optimizer rules defined in file 'SDCCpeeph.def'
+ carefully before using this option.
+\newline 
 
+\newline 
 
-\size small 
+\family typewriter 
 _asm 
 \newline 
 \SpecialChar ~
  \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
-mov b,#10 
+ mov b,#10 
 \newline 
 00001$: 
 \newline 
 \SpecialChar ~
  \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
-djnz b,00001$ 
+ djnz b,00001$ 
 \newline 
 _endasm ;
-\layout Standard
+\family default 
+\size small 
 
+\newline 
+
+\newline 
+
+\size default 
 The inline assembler code can contain any valid code understood by the assembler
  (this includes any assembler directives and comment lines).
  The compiler does not do any validation of the code within the 
-\emph on 
+\family typewriter 
 _asm ...
  _endasm;
-\emph default 
+\family default 
  keyword pair.
  
-\layout Standard
-
-Inline assembler code cannot reference any C-Labels however it can reference
- labels defined by the inline assembler.
-\layout Standard
-
+\newline 
 
-\size small 
-eg
-\layout Standard
+\newline 
+Inline assembler code cannot reference any C-Labels, however it can reference
+ labels defined by the inline assembler, e.g.:
+\newline 
 
+\newline 
 
-\size small 
+\family typewriter 
 foo() { 
 \newline 
-...
- /* some c code */ 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+/* some c code */ 
 \newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 _asm 
 \newline 
 \SpecialChar ~
- \SpecialChar ~
- \SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 ; some assembler code 
 \newline 
 \SpecialChar ~
- \SpecialChar ~
- ljmp $0003 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+ljmp $0003 
 \newline 
-_endasm ; 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+_endasm; 
 \newline 
-...
- /* some more c code */ 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+/* some more c code */ 
 \newline 
-clabel: \SpecialChar ~
- /* inline assembler cannot reference this label */ 
+clabel:\SpecialChar ~
+\SpecialChar ~
+/* inline assembler cannot reference this label */ 
 \newline 
-_asm 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+_asm
 \newline 
 \SpecialChar ~
- \SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 $0003: ;label (can be reference by inline assembler only) 
 \newline 
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
 _endasm ; 
 \newline 
-...
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+\SpecialChar ~
+/* some more c code */
 \newline 
 }
-\layout Standard
+\newline 
+
+\newline 
 
+\family default 
 In other words inline assembly code can access labels defined in inline
  assembly.
  The same goes the other way, ie.
@@ -3353,7 +3500,7 @@ For signed & unsigned int (16 bit) and long (32 bit) variables, division,
  These support routines are all developed in ANSI-C to facilitate porting
  to other MCUs.
  The following files contain the described routine, all of them can be found
- in the directory SDCCDIR/sdcc51lib
+ in the directory default SDCC library path.
 \layout Itemize
 
 
@@ -3416,11 +3563,11 @@ _modslong.c - signed 32 bit modulus (calls _modulong).
 _modulong.c - unsigned 32 bit modulus.
 \layout Standard
 
-All these routines are compiled as non-reentrant and small model.
- Since they are compiled as non-reentrant, interrupt service routines should
- not do any of the above operations, if this unavoidable then the above
- routines will need to ne compiled with the --stack-auto option, after which
the source program will have to be compiled with --int-long-rent option.
+Since they are compiled as non-reentrant, interrupt service routines should
+ not do any of the above operations.
+ If this unavoidable then the above routines will need to be compiled with
+ the --stack-auto option, after which the source program will have to be
+ compiled with --int-long-rent option.
 \layout Subsection
 
 Floating Point Support
@@ -3516,20 +3663,23 @@ Note if all these routines are used simultaneously the data space might
  overflow.
  For serious floating point usage it is strongly recommended that the Large
  model be used (in which case the floating point routines mentioned above
- will need to recompiled with the --model-Large option)
+ will need to recompiled with the --model-large option)
 \layout Subsection
 
 MCS51 Memory Models
 \layout Standard
 
 SDCC allows two memory models for MCS51 code, small and large.
- Modules compiled with different memory models should never be combined
- together or the results would be unpredictable.
+ Modules compiled with different memory models should 
+\emph on 
+never
+\emph default 
+ be combined together or the results would be unpredictable.
  The library routines supplied with the compiler are compiled as both small
  and large.
  The compiled library modules are contained in seperate directories as small
  and large so that you can link to either set.
- In general the use of the large model is discouraged.
 \layout Standard
 
 When the large model is used all variables declared without a storage class
@@ -3540,43 +3690,48 @@ When the large model is used all variables declared without a storage class
 \layout Standard
 
 Judicious usage of the processor specific storage classes and the 'reentrant'
- function type will yield much more efficient code, than using the large-model.
+ function type will yield much more efficient code, than using the large
+ model.
  Several optimizations are disabled when the program is compiled using the
  large model, it is therefore strongly recommdended that the small model
  be used unless absolutely required.
 \layout Subsection
 
-Flat 24 bit Addressing Model
+DS390 Memory Models
 \layout Standard
 
-This option generates code for the 24 bit contiguous addressing mode of
- the Dallas DS80C390 part.
+The only model supported is Flat 24.
+ This generates code for the 24 bit contiguous addressing mode of the Dallas
+ DS80C390 part.
  In this mode, up to four meg of external RAM or code space can be directly
  addressed.
  See the data sheets at www.dalsemi.com for further information on this part.
-\layout Standard
+\newline 
 
+\newline 
 In older versions of the compiler, this option was used with the MCS51 code
  generator (-mmcs51).
  Now, however, the '390 has it's own code generator, selected by the -mds390
  switch.
- This code generator currently supports only the flat24 model, but the --model-f
-lat24 switch is still required, in case later versions of the code generator
- support other models (such as the paged mode of the '390).
- The combination of -mmcs51 and --model-flat24 is now depracated.
-\layout Standard
+\newline 
 
+\newline 
 Note that the compiler does not generate any code to place the processor
- into24 bitmode (it defaults to 8051 compatible mode).
- Boot loader or similar code must ensure that the processor is in 24 bit
- contiguous addressing mode before calling the SDCC startup code.
-\layout Standard
+ into 24 bitmode (although the tinibios in the ds390 libraries will do that
+ for you).
+ If you don't use tinibios, the boot loader or similar code must ensure
+ that the processor is in 24 bit contiguous addressing mode before calling
+ the SDCC startup code.
+\newline 
 
+\newline 
 Like the --model-large option, variables will by default be placed into
  the XDATA segment.
  
-\layout Standard
+\newline 
 
+\newline 
 Segments may be placed anywhere in the 4 meg address space using the usual
  --*-loc options.
  Note that if any segments are located above 64K, the -r flag must be passed
@@ -3584,6 +3739,7 @@ Segments may be placed anywhere in the 4 meg address space using the usual
  HEX output format must be used.
  The -r flag can be passed to the linker by using the option -Wl-r on the
  sdcc command line.
+ However, currently the linker can not handle code segments > 64k.
 \layout Subsection
 
 Defines Created by the Compiler
@@ -3595,6 +3751,14 @@ The compiler creates the following #defines.
 SDCC - this Symbol is always defined.
 \layout Itemize
 
+SDCC_mcs51 or SDCC_ds390 or SDCC_z80, etc - depending on the model used
+ (e.g.: -mds390)
+\layout Itemize
+
+__mcs51 or __ds390 or __z80, etc - depending on the model used (e.g.
+ -mz80)
+\layout Itemize
+
 SDCC_STACK_AUTO - this symbol is defined when --stack-auto option is used.
 \layout Itemize
 
@@ -3605,6 +3769,12 @@ SDCC_MODEL_LARGE - when --model-large is used.
 \layout Itemize
 
 SDCC_USE_XSTACK - when --xstack option is used.
+\layout Itemize
+
+SDCC_STACK_TENBIT - when -mds390 is used
+\layout Itemize
+
+SDCC_MODEL_FLAT24 - when -mds390 is used
 \layout Section
 
 SDCC Technical Data
index 6b384a7e77b929368aa5a4e4a4f55a84eec1466f..c2c4a06028231ff6fe0a24569d8044b252861d2e 100644 (file)
@@ -4164,7 +4164,7 @@ skipall:
   addSet (&operKeyReset, name);
   applyToSet (operKeyReset, resetParmKey);
 
-  if (options.debug && !options.nodebug)
+  if (options.debug)
     cdbStructBlock (1, cdbFile);
 
   cleanUpLevel (LabelTab, 0);
index fbe02e14bdf140dcb155b5fcda3854bbb1f84980..602aef492f5bd26c4f948d208f1a0382026b9d10 100644 (file)
@@ -191,7 +191,6 @@ struct options
     int useXstack;             /* use Xternal Stack */
     int stack10bit;            /* use 10 bit stack (flat24 model only) */
     int genericPtr;            /* use generic pointers */
-    int regExtend;             /* don't use extended registers */
     int dump_raw;              /* dump after intermediate code generation */
     int dump_gcse;             /* dump after gcse */
     int dump_loop;             /* dump after loop optimizations */
@@ -209,7 +208,6 @@ struct options
     int nopeep;                        /* no peep hole optimization */
     int asmpeep;               /* pass inline assembler thru peep hole */
     int debug;                 /* generate extra debug info */
-    int nodebug;               /* Generate no debug info. */
     int stackOnData;           /* stack after data segment  */
     int c1mode;                        /* Act like c1 - no pre-proc, asm or link */
     char *peep_file;           /* additional rules for peep hole */
@@ -233,6 +231,7 @@ struct options
   };
 
 /* forward definition for variables accessed globally */
+extern int noAssemble;         /* no assembly, stop after code generation */
 extern char *yytext;
 extern char *currFname;
 extern char *srcFileName;      /* source file name without the extenstion */
index 6552a80f46717ba5ced20e57058940ed14b0bc9c..8524d1838305698c8d5f0750b079d3430f931c6d 100644 (file)
@@ -212,29 +212,26 @@ emitRegularMap (memmap * map, bool addPublics, bool arFlag)
        continue;
 
       /* print extra debug info if required */
-      if ((options.debug || sym->level == 0) && !options.nodebug)
-       {
-
-         cdbSymbol (sym, cdbFile, FALSE, FALSE);
-
-         if (!sym->level)      /* global */
-           if (IS_STATIC (sym->etype))
-             fprintf (map->oFile, "F%s$", moduleName);         /* scope is file */
-           else
-             fprintf (map->oFile, "G$");       /* scope is global */
+      if (options.debug) {
+       cdbSymbol (sym, cdbFile, FALSE, FALSE);
+       if (!sym->level) /* global */
+         if (IS_STATIC (sym->etype))
+           fprintf (map->oFile, "F%s$", moduleName); /* scope is file */
          else
-           /* symbol is local */
-           fprintf (map->oFile, "L%s$", (sym->localof ? sym->localof->name : "-null-"));
-         fprintf (map->oFile, "%s$%d$%d", sym->name, sym->level, sym->block);
-       }
-
+           fprintf (map->oFile, "G$"); /* scope is global */
+       else
+         /* symbol is local */
+         fprintf (map->oFile, "L%s$", (sym->localof ? sym->localof->name : "-null-"));
+       fprintf (map->oFile, "%s$%d$%d", sym->name, sym->level, sym->block);
+      }
+      
       /* if is has an absolute address then generate
          an equate for this no need to allocate space */
       if (SPEC_ABSA (sym->etype))
        {
-         if ((options.debug || sym->level == 0) && !options.nodebug)
+         if (options.debug) {
            fprintf (map->oFile, " == 0x%04x\n", SPEC_ADDR (sym->etype));
-
+         }
          fprintf (map->oFile, "%s\t=\t0x%04x\n",
                   sym->rname,
                   SPEC_ADDR (sym->etype));
@@ -242,13 +239,15 @@ emitRegularMap (memmap * map, bool addPublics, bool arFlag)
       else
        {
          /* allocate space */
-         if ((options.debug || sym->level == 0) && !options.nodebug)
+         if (options.debug) {
            fprintf (map->oFile, "==.\n");
+         }
          if (IS_STATIC (sym->etype))
            tfprintf (map->oFile, "!slabeldef\n", sym->rname);
          else
            tfprintf (map->oFile, "!labeldef\n", sym->rname);
-         tfprintf (map->oFile, "\t!ds\n", (unsigned int) getSize (sym->type) & 0xffff);
+         tfprintf (map->oFile, "\t!ds\n", 
+                   (unsigned int) getSize (sym->type) & 0xffff);
        }
 
       /* if it has an initial value then do it only if
@@ -982,40 +981,37 @@ emitStaticSeg (memmap * map, FILE * out)
        addSetHead (&publics, sym);
 
       /* print extra debug info if required */
-      if ((options.debug || sym->level == 0) && !options.nodebug)
-       {
-
-         cdbSymbol (sym, cdbFile, FALSE, FALSE);
-
-         if (!sym->level)
-           {                   /* global */
-             if (IS_STATIC (sym->etype))
-               fprintf (out, "F%s$", moduleName);      /* scope is file */
-             else
-               fprintf (out, "G$");    /* scope is global */
-           }
-         else
-           /* symbol is local */
-           fprintf (out, "L%s$",
-                    (sym->localof ? sym->localof->name : "-null-"));
-         fprintf (out, "%s$%d$%d", sym->name, sym->level, sym->block);
-       }
-
+      if (options.debug) {
+       cdbSymbol (sym, cdbFile, FALSE, FALSE);
+       if (!sym->level)
+         {                     /* global */
+           if (IS_STATIC (sym->etype))
+             fprintf (out, "F%s$", moduleName);        /* scope is file */
+           else
+             fprintf (out, "G$");      /* scope is global */
+         }
+       else
+         /* symbol is local */
+         fprintf (out, "L%s$",
+                  (sym->localof ? sym->localof->name : "-null-"));
+       fprintf (out, "%s$%d$%d", sym->name, sym->level, sym->block);
+      }
+      
       /* if it has an absolute address */
       if (SPEC_ABSA (sym->etype))
        {
-         if ((options.debug || sym->level == 0) && !options.nodebug)
+         if (options.debug)
            fprintf (out, " == 0x%04x\n", SPEC_ADDR (sym->etype));
-
+         
          fprintf (out, "%s\t=\t0x%04x\n",
                   sym->rname,
                   SPEC_ADDR (sym->etype));
        }
       else
        {
-         if ((options.debug || sym->level == 0) && !options.nodebug)
+         if (options.debug)
            fprintf (out, " == .\n");
-
+         
          /* if it has an initial value */
          if (sym->ival)
            {
@@ -1088,7 +1084,7 @@ createInterruptVect (FILE * vFile)
   /* only if the main function exists */
   if (!(mainf = findSymWithLevel (SymbolTab, mainf)))
     {
-      if (!options.cc_only)
+      if (!options.cc_only && !noAssemble)
        werror (E_NO_MAIN);
       return;
     }
@@ -1097,7 +1093,7 @@ createInterruptVect (FILE * vFile)
   if (!mainf->fbody)
     {
       /* if ! compile only then main function should be present */
-      if (!options.cc_only)
+      if (!options.cc_only && !noAssemble)
        werror (E_NO_MAIN);
       return;
     }
@@ -1241,9 +1237,8 @@ emitOverlay (FILE * afile)
            continue;
 
          /* print extra debug info if required */
-         if ((options.debug || sym->level == 0) && !options.nodebug)
+         if (options.debug)
            {
-
              cdbSymbol (sym, cdbFile, FALSE, FALSE);
 
              if (!sym->level)
@@ -1265,7 +1260,7 @@ emitOverlay (FILE * afile)
          if (SPEC_ABSA (sym->etype))
            {
 
-             if ((options.debug || sym->level == 0) && !options.nodebug)
+             if (options.debug)
                fprintf (afile, " == 0x%04x\n", SPEC_ADDR (sym->etype));
 
              fprintf (afile, "%s\t=\t0x%04x\n",
@@ -1274,9 +1269,9 @@ emitOverlay (FILE * afile)
            }
          else
            {
-             if ((options.debug || sym->level == 0) && !options.nodebug)
+             if (options.debug)
                fprintf (afile, "==.\n");
-
+             
              /* allocate space */
              tfprintf (afile, "!labeldef\n", sym->rname);
              tfprintf (afile, "\t!ds\n", (unsigned int) getSize (sym->type) & 0xffff);
@@ -1298,7 +1293,7 @@ glue ()
 
   addSetHead (&tmpfileSet, ovrFile);
   /* print the global struct definitions */
-  if (options.debug && !options.nodebug)
+  if (options.debug)
     cdbStructBlock (0, cdbFile);
 
   vFile = tempfile ();
index a87109afb9b5282ba0a648d9e7f7368591ddc5c0..b0c27c3aed97c66687d2a7b865a59265c8786214 100644 (file)
@@ -158,7 +158,6 @@ optionsTable[] = {
     { 0,    OPTION_NO_LOOP_IND,     NULL, NULL },
     { 0,    "--nojtbound",          &optimize.noJTabBoundary, "Don't generate boundary check for jump tables" },
     { 0,    "--noloopreverse",      &optimize.noLoopReverse, "Disable the loop reverse optimisation" },
-    { 0,    "--regextend",          &options.regExtend, NULL },
     { 'c',  "--compile-only",       &options.cc_only, "Compile only, do not assemble or link" },
     { 0,    "--dumpraw",            &options.dump_raw, "Dump the internal structure after the initial parse" },
     { 0,    "--dumpgcse",           &options.dump_gcse, NULL },
@@ -187,7 +186,6 @@ optionsTable[] = {
     { 0,    "--no-peep",            &options.nopeep, "Disable the peephole assembly file optimisation" },
     { 0,    "--peep-asm",           &options.asmpeep, NULL },
     { 0,    "--debug",              &options.debug, "Enable debugging symbol output" },
-    { 0,    "--nodebug",            &options.nodebug, "Disable debugging symbol output" },
     { 'v',  OPTION_VERSION,         NULL, "Display sdcc's version" },
     { 0,    "--stack-after-data",   &options.stackOnData, NULL },
     { 'E',  "--preprocessonly",     &preProcOnly, "Preprocess only, do not compile" },
@@ -993,7 +991,7 @@ parseCmdLine (int argc, char **argv)
     options.xstack_loc = options.xdata_loc;
 
   /* if debug option is set the open the cdbFile */
-  if (!options.nodebug && srcFileName)
+  if (options.debug && srcFileName)
     {
       sprintf (scratchFileName, "%s.cdb", srcFileName);
       if ((cdbFile = fopen (scratchFileName, "w")) == NULL)
@@ -1035,8 +1033,8 @@ linkEdit (char **envp)
   if (options.iram_size)
     fprintf (lnkfile, "-a 0x%04x\n", options.iram_size);
 
-  /*if (options.debug) */
-  fprintf (lnkfile, "-z\n");
+  if (options.debug)
+    fprintf (lnkfile, "-z\n");
 
 #define WRITE_SEG_LOC(N, L) \
     segName = strdup(N); \
@@ -1365,7 +1363,7 @@ main (int argc, char **argv, char **envp)
               // EndFix
              return 1;
            }
-         if (!options.c1mode)
+         if (!options.c1mode && !noAssemble)
            {
              if (options.verbose)
                printf ("sdcc: Calling assembler...\n");
index 5a447ccc2777dbb1d04d084dd1e94d68b64fe91a..9649469fc0791cb028ecc14e98df01170df9df1b 100644 (file)
@@ -930,7 +930,7 @@ redoStackOffsets (void)
 
   /* if the debug option is set then output the
      symbols to the map file */
-  if (options.debug && !options.nodebug)
+  if (options.debug)
     {
       for (sym = setFirstItem (istack->syms); sym;
           sym = setNextItem (istack->syms))
index e030c416b89bbf2a78336b474ebcb6ef1ea32411..2ff9574eaee311ea60c4446c7d9fb17caf86ad49 100644 (file)
@@ -2505,12 +2505,7 @@ ds390_assignRegisters (eBBlock ** ebbs, int count)
 
   setToNull ((void *) &_G.funcrUsed);
   ds390_ptrRegReq = _G.stackExtend = _G.dataExtend = 0;
-  /* if not register extentions then reduce number
-     of registers */
-  if (options.regExtend)
-    ds390_nRegs = 13;
-  else
-    ds390_nRegs = 8;
+  ds390_nRegs = 8;
 
   /* change assignments this will remove some
      live ranges reducing some register pressure */
index eb399cb5983b734b1a3409cc43951db5cc741d24..47793dc3431020daf3e51932893fdb7be5961cdb 100644 (file)
@@ -2509,8 +2509,8 @@ genEndFunction (iCode * ic)
        emitcode ("setb", "ea");
 
       /* if debug then send end of function */
-/*  if (options.debug && currFunc)  */
-      if (currFunc)
+      /*  if (options.debug && currFunc)  */
+      if (options.debug && currFunc)
        {
          _G.debugLine = 1;
          emitcode ("", "C$%s$%d$%d$%d ==.",
@@ -2549,7 +2549,7 @@ genEndFunction (iCode * ic)
        }
 
       /* if debug then send end of function */
-      if (currFunc)
+      if (options.debug && currFunc)
        {
          _G.debugLine = 1;
          emitcode ("", "C$%s$%d$%d$%d ==.",
@@ -8438,8 +8438,8 @@ gen51Code (iCode * lic)
   if (allocInfo)
     printAllocInfo (currFunc, codeOutFile);
   /* if debug information required */
-/*     if (options.debug && currFunc) { */
-  if (currFunc)
+  /*     if (options.debug && currFunc) { */
+  if (options.debug && currFunc)
     {
       cdbSymbol (currFunc, cdbFile, FALSE, TRUE);
       _G.debugLine = 1;
index 1c8d487bdc67407d1878341b82cd38d8aeb0ad70..c41430f4dc3cc24bd3988879bc144640323d2f10 100644 (file)
@@ -2501,12 +2501,7 @@ mcs51_assignRegisters (eBBlock ** ebbs, int count)
 
   setToNull ((void *) &_G.funcrUsed);
   mcs51_ptrRegReq = _G.stackExtend = _G.dataExtend = 0;
-  /* if not register extentions then reduce number
-     of registers */
-  if (options.regExtend)
-    mcs51_nRegs = 13;
-  else
-    mcs51_nRegs = 8;
+  mcs51_nRegs = 8;
 
   /* change assignments this will remove some
      live ranges reducing some register pressure */
index 4438c1ff12535bfd15efbdde0accf12c058bd4f6..1e8cfef63667324e4d8f8f8887a78f42d417c424 100644 (file)
@@ -260,7 +260,6 @@ _setDefaultOptions (void)
   options.nopeep = 0;
   options.stackAuto = 1;
   options.mainreturn = 1;
-  options.nodebug = 1;
   /* first the options part */
   options.intlong_rent = 1;
 
index 636b4d0ee2dcdfb1506d3abc1043c433f129fdd7..c2ebbc1a35d2a4a63ba0aeee582c03e9799c803d 100644 (file)
@@ -1,3 +1,3 @@
 /* Generated automatically. */
-static const char configuration_arguments[] = " : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured) ";
+static const char configuration_arguments[] = " : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured)  : (reconfigured) ";
 static const char thread_model[] = "";