\relax 
\ifx\hyper@anchor\@undefined
\global \let \oldcontentsline\contentsline
\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global \let \oldnewlabel\newlabel
\gdef \newlabel#1#2{\newlabelxx{#1}#2}
\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\let \contentsline\oldcontentsline
\let \newlabel\oldnewlabel}
\else
\global \let \hyper@last\relax 
\fi

\select@language{english}
\@writefile{toc}{\select@language{english}}
\@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{english}}
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{6}{chapter.1}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}About SDCC}{6}{section.1.1}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Open Source}{7}{section.1.2}}
\@writefile{toc}{\contentsline {section}{\numberline {1.3}Typographic conventions}{7}{section.1.3}}
\newlabel{sec:Compatibility-with-previous}{{1.4}{7}{Compatibility\label {sec:Compatibility-with-previous} with previous versions\index {Compatibility with previous versions}\relax }{section.1.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {1.4}Compatibility with previous versions}{7}{section.1.4}}
\newlabel{1@xvr}{{}{7}{Compatibility\label {sec:Compatibility-with-previous} with previous versions\index {Compatibility with previous versions}\relax }{section.1.4}{}}
\newlabel{1@vr}{{}{7}{Compatibility\label {sec:Compatibility-with-previous} with previous versions\index {Compatibility with previous versions}\relax }{section.1.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {1.5}System Requirements}{8}{section.1.5}}
\@writefile{toc}{\contentsline {section}{\numberline {1.6}Other Resources}{8}{section.1.6}}
\@writefile{toc}{\contentsline {section}{\numberline {1.7}Wishes for the future}{8}{section.1.7}}
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Installing SDCC}{10}{chapter.2}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Configure Options}{10}{section.2.1}}
\newlabel{sub:Install-paths}{{2.2}{12}{Install paths\label {sub:Install-paths}\index {Install paths}\relax }{section.2.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Install paths}{12}{section.2.2}}
\newlabel{sub:Search-Paths}{{2.3}{13}{Search Paths\label {sub:Search-Paths}\index {Search path}\relax }{section.2.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Search Paths}{13}{section.2.3}}
\@writefile{toc}{\contentsline {section}{\numberline {2.4}Building SDCC}{13}{section.2.4}}
\newlabel{sub:Building-SDCC-on-Linux}{{2.4.1}{13}{Building SDCC on Linux\label {sub:Building-SDCC-on-Linux}\relax }{subsection.2.4.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.1}Building SDCC on Linux}{13}{subsection.2.4.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.2}Building SDCC on Mac OS X}{14}{subsection.2.4.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.3}Cross compiling SDCC on Linux for Windows}{14}{subsection.2.4.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.4}Building SDCC using Cygwin and Mingw32}{14}{subsection.2.4.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.5}Building SDCC Using Microsoft Visual C++ 6.0/NET (MSVC)}{15}{subsection.2.4.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.6}Building SDCC Using Borland}{16}{subsection.2.4.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.7}Windows Install Using a ZIP Package}{17}{subsection.2.4.7}}
\newlabel{sub:Windows-Install}{{2.4.8}{17}{Windows Install Using the Setup Program\label {sub:Windows-Install}\relax }{subsection.2.4.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.8}Windows Install Using the Setup Program}{17}{subsection.2.4.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.9}VPATH feature}{17}{subsection.2.4.9}}
\@writefile{toc}{\contentsline {section}{\numberline {2.5}Building the Documentation}{17}{section.2.5}}
\@writefile{toc}{\contentsline {section}{\numberline {2.6}Reading the Documentation}{17}{section.2.6}}
\newlabel{sec:Testing-the-SDCC}{{2.7}{18}{Testing the SDCC Compiler\label {sec:Testing-the-SDCC}\relax }{section.2.7}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.7}Testing the SDCC Compiler}{18}{section.2.7}}
\newlabel{sub:Install-Trouble-shooting}{{2.8}{19}{Install Trouble-shooting\label {sub:Install-Trouble-shooting}\index {Install trouble-shooting}\relax }{section.2.8}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.8}Install Trouble-shooting}{19}{section.2.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.8.1}If SDCC does not build correctly}{19}{subsection.2.8.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.8.2}What the ''./configure'' does}{19}{subsection.2.8.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.8.3}What the ''make'' does}{19}{subsection.2.8.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.8.4}What the ''make install'' command does.}{19}{subsection.2.8.4}}
\@writefile{toc}{\contentsline {section}{\numberline {2.9}Components of SDCC}{19}{section.2.9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.1}sdcc - The Compiler}{20}{subsection.2.9.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.2}sdcpp - The C-Preprocessor}{20}{subsection.2.9.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.3}as\emph  {xxxx}, aslink, link-\emph  {xxx} - The Assemblers and Linkage Editors}{20}{subsection.2.9.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.4}s51 - The Simulator}{20}{subsection.2.9.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.9.5}sdcdb - Source Level Debugger}{20}{subsection.2.9.5}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Using SDCC}{21}{chapter.3}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Compiling}{21}{section.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Single Source File Projects}{21}{subsection.3.1.1}}
\newlabel{2@xvr}{{}{21}{Single Source File Projects\relax }{subsection.3.1.1}{}}
\newlabel{2@vr}{{}{21}{Single Source File Projects\relax }{subsection.3.1.1}{}}
\newlabel{OMF file}{{3.1.1}{21}{Single Source File Projects\relax }{subsection.3.1.1}{}}
\newlabel{sub:Postprocessing-the-Intel}{{3.1.2}{21}{Postprocessing the Intel Hex\index {Intel hex format} file\label {sub:Postprocessing-the-Intel}\relax }{subsection.3.1.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Postprocessing the Intel Hex file}{21}{subsection.3.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.3}Projects with Multiple Source Files}{22}{subsection.3.1.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.4}Projects with Additional Libraries}{22}{subsection.3.1.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.5}Using sdcclib to Create and Manage Libraries}{23}{subsection.3.1.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.6}Using ar to Create and Manage Libraries}{24}{subsection.3.1.6}}
\newlabel{sec:Command-Line-Options}{{3.2}{24}{Command Line Options\index {Command Line Options}\label {sec:Command-Line-Options}\relax }{section.3.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Command Line Options}{24}{section.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Processor Selection Options}{24}{subsection.3.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Preprocessor Options}{25}{subsection.3.2.2}}
\newlabel{lyx:-pedantic-parse-number}{{3.2.2}{25}{Preprocessor Options\index {Options preprocessor}\index {Preprocessor options}\index {sdcpp (preprocessor)}\relax }{subsection.3.2.2}{}}
\newlabel{3@xvr}{{}{25}{Preprocessor Options\index {Options preprocessor}\index {Preprocessor options}\index {sdcpp (preprocessor)}\relax }{subsection.3.2.2}{}}
\newlabel{3@vr}{{}{25}{Preprocessor Options\index {Options preprocessor}\index {Preprocessor options}\index {sdcpp (preprocessor)}\relax }{subsection.3.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Linker Options}{26}{subsection.3.2.3}}
\newlabel{lyx:-Wl option}{{3.2.3}{26}{Linker Options\index {Options linker}\index {Linker options}\relax }{subsection.3.2.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.4}MCS51 Options}{26}{subsection.3.2.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.5}DS390 / DS400 Options}{27}{subsection.3.2.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.6}Z80 Options}{28}{subsection.3.2.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.7}GBZ80 Options}{28}{subsection.3.2.7}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.8}Optimization Options}{28}{subsection.3.2.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.9}Other Options}{29}{subsection.3.2.9}}
\newlabel{lyx:--callee-saves-function1[,function2][,function3]...}{{3.2.9}{29}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{4@xvr}{{}{29}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{4@vr}{{}{29}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{lyx:--less-pedantic}{{3.2.9}{30}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{5@xvr}{{}{30}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{5@vr}{{}{30}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{lyx:-codeseg}{{3.2.9}{31}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{lyx:more-pedantic-SPLINT}{{3.2.9}{31}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{lyx:--short-is-8bits}{{3.2.9}{31}{Other Options\index {Options other}\relax }{subsection.3.2.9}{}}
\newlabel{sub:Intermediate-Dump-Options}{{3.2.10}{31}{Intermediate Dump Options\label {sub:Intermediate-Dump-Options}\index {Options intermediate dump}\index {Intermediate dump options}\relax }{subsection.3.2.10}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.10}Intermediate Dump Options}{31}{subsection.3.2.10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.11}Redirecting output on Windows Shells}{32}{subsection.3.2.11}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Environment variables}{32}{section.3.3}}
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Storage Class Language Extensions}{32}{section.3.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1}MCS51/DS390 Storage Class Language Extensions}{32}{subsection.3.4.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.1}data / near}{32}{subsubsection.3.4.1.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.2}xdata / far}{33}{subsubsection.3.4.1.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.3}idata}{33}{subsubsection.3.4.1.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.4}pdata}{33}{subsubsection.3.4.1.4}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.5}code}{33}{subsubsection.3.4.1.5}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.6}bit}{34}{subsubsection.3.4.1.6}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.7}sfr / sfr16 / sfr32 / sbit}{34}{subsubsection.3.4.1.7}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.8}Pointers to MCS51/DS390 specific memory spaces}{34}{subsubsection.3.4.1.8}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1.9}Notes on MCS51 memory layout}{35}{subsubsection.3.4.1.9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.2}Z80/Z180 Storage Class Language Extensions}{36}{subsection.3.4.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2.1}sfr (in/out to 8-bit addresses)}{36}{subsubsection.3.4.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2.2}banked sfr (in/out to 16-bit addresses)}{36}{subsubsection.3.4.2.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2.3}sfr (in0/out0 to 8 bit addresses on Z180/HD64180)}{36}{subsubsection.3.4.2.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.3}HC08 Storage Class Language Extensions}{36}{subsection.3.4.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3.1}data }{36}{subsubsection.3.4.3.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3.2}xdata }{36}{subsubsection.3.4.3.2}}
\@writefile{toc}{\contentsline {section}{\numberline {3.5}Other SDCC language extensions}{36}{section.3.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1}Binary constants}{36}{subsection.3.5.1}}
\@writefile{toc}{\contentsline {section}{\numberline {3.6}Absolute Addressing}{37}{section.3.6}}
\newlabel{sec:Parameters-and-Local-Variables}{{3.7}{38}{Parameters\index {Parameters}\index {function parameter} \& Local Variables\index {local variables}\label {sec:Parameters-and-Local-Variables}\relax }{section.3.7}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.7}Parameters \& Local Variables}{38}{section.3.7}}
\newlabel{sub:Overlaying}{{3.8}{38}{Overlaying\label {sub:Overlaying}\index {Overlaying}\relax }{section.3.8}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.8}Overlaying}{38}{section.3.8}}
\newlabel{sub:Interrupt-Service-Routines}{{3.9}{39}{Interrupt Service Routines\label {sub:Interrupt-Service-Routines}\relax }{section.3.9}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.9}Interrupt Service Routines}{39}{section.3.9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.9.1}General Information}{39}{subsection.3.9.1}}
\newlabel{sub:Common-interrupt-pitfall-volatile}{{3.9.1.1}{39}{\label {sub:Common-interrupt-pitfall-volatile}Common interrupt pitfall: variable not declared \emph {volatile}\relax }{subsubsection.3.9.1.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.9.1.1}Common interrupt pitfall: variable not declared \emph  {volatile}}{39}{subsubsection.3.9.1.1}}
\newlabel{sub:Common-interrupt-pitfall-non-atomic}{{3.9.1.2}{40}{\label {sub:Common-interrupt-pitfall-non-atomic}Common interrupt pitfall: \emph {non-atomic access}\relax }{subsubsection.3.9.1.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.9.1.2}Common interrupt pitfall: \emph  {non-atomic access}}{40}{subsubsection.3.9.1.2}}
\newlabel{sub:Common-interrupt-pitfall-stack-overflow}{{3.9.1.3}{40}{\label {sub:Common-interrupt-pitfall-stack-overflow}Common interrupt pitfall: \emph {stack overflow}\relax }{subsubsection.3.9.1.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.9.1.3}Common interrupt pitfall: \emph  {stack overflow}}{40}{subsubsection.3.9.1.3}}
\newlabel{sub:Common-interrupt-pitfall-non-reentrant}{{3.9.1.4}{40}{\label {sub:Common-interrupt-pitfall-non-reentrant}Common interrupt pitfall: \emph {use of non-reentrant functions}\relax }{subsubsection.3.9.1.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.9.1.4}Common interrupt pitfall: \emph  {use of non-reentrant functions}}{40}{subsubsection.3.9.1.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.9.2}MCS51/DS390 Interrupt Service Routines}{40}{subsection.3.9.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.9.3}HC08 Interrupt Service Routines}{41}{subsection.3.9.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.9.4}Z80 Interrupt Service Routines}{41}{subsection.3.9.4}}
\@writefile{toc}{\contentsline {section}{\numberline {3.10}Enabling and Disabling Interrupts}{41}{section.3.10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.1}Critical Functions and Critical Statements}{41}{subsection.3.10.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.2}Enabling and Disabling Interrupts directly}{42}{subsection.3.10.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.3}Semaphore locking (mcs51/ds390)}{42}{subsection.3.10.3}}
\newlabel{sub:Functions-using-private-banks}{{3.11}{42}{Functions using private register banks\label {sub:Functions-using-private-banks} (mcs51/ds390)\relax }{section.3.11}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.11}Functions using private register banks (mcs51/ds390)}{42}{section.3.11}}
\newlabel{sub:Startup-Code}{{3.12}{43}{Startup Code\label {sub:Startup-Code}\index {Startup code}\relax }{section.3.12}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.12}Startup Code}{43}{section.3.12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.12.1}MCS51/DS390 Startup Code}{43}{subsection.3.12.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.12.2}HC08 Startup Code}{45}{subsection.3.12.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.12.3}Z80 Startup Code}{45}{subsection.3.12.3}}
\@writefile{toc}{\contentsline {section}{\numberline {3.13}Inline Assembler Code}{45}{section.3.13}}
\newlabel{sub:A-Step-by Assembler Introduction}{{3.13.1}{45}{A Step by Step Introduction\label {sub:A-Step-by Assembler Introduction}\relax }{subsection.3.13.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.13.1}A Step by Step Introduction}{45}{subsection.3.13.1}}
\newlabel{sub:Naked-Functions}{{3.13.2}{47}{Naked Functions\label {sub:Naked-Functions}\index {Naked functions}\relax }{subsection.3.13.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.13.2}Naked Functions}{47}{subsection.3.13.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.13.3}Use of Labels within Inline Assembler}{48}{subsection.3.13.3}}
\@writefile{toc}{\contentsline {section}{\numberline {3.14}Interfacing with Assembler Code}{49}{section.3.14}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.14.1}Global Registers used for Parameter Passing}{49}{subsection.3.14.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.14.2}Registers usage}{49}{subsection.3.14.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.14.3}Assembler Routine (non-reentrant)}{49}{subsection.3.14.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.14.4}Assembler Routine (reentrant)}{50}{subsection.3.14.4}}
\@writefile{toc}{\contentsline {section}{\numberline {3.15}int (16 bit) and long (32 bit) Support}{51}{section.3.15}}
\@writefile{toc}{\contentsline {section}{\numberline {3.16}Floating Point Support}{51}{section.3.16}}
\@writefile{toc}{\contentsline {section}{\numberline {3.17}Library Routines}{52}{section.3.17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.17.1}Compiler support routines (\_gptrget, \_mulint etc.)}{52}{subsection.3.17.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.17.2}Stdclib functions (puts, printf, strcat etc.)}{52}{subsection.3.17.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.17.2.1}<stdio.h>}{52}{subsubsection.3.17.2.1}}
\@writefile{toc}{\contentsline {paragraph}{getchar(), putchar()}{52}{section*.2}}
\@writefile{toc}{\contentsline {paragraph}{printf()}{52}{section*.3}}
\gdef \LT@i {\LT@entry 
    {1}{76.89238pt}\LT@entry 
    {2}{69.34967pt}\LT@entry 
    {1}{67.33434pt}\LT@entry 
    {1}{58.18327pt}\LT@entry 
    {2}{69.34967pt}\LT@entry 
    {1}{67.33434pt}\LT@entry 
    {2}{77.24966pt}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.17.2.2}<malloc.h>}{53}{subsubsection.3.17.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.17.3}Math functions (sinf, powf, sqrtf etc.)}{53}{subsection.3.17.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.17.3.1}<math.h>}{53}{subsubsection.3.17.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.17.4}Other libraries}{54}{subsection.3.17.4}}
\@writefile{toc}{\contentsline {section}{\numberline {3.18}Memory Models}{54}{section.3.18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.18.1}MCS51 Memory Models}{54}{subsection.3.18.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.18.1.1}Small, Medium and Large}{54}{subsubsection.3.18.1.1}}
\newlabel{sub:External-Stack}{{3.18.1.2}{54}{External Stack\label {sub:External-Stack}\index {stack}\index {External stack (mcs51)}\relax }{subsubsection.3.18.1.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.18.1.2}External Stack}{54}{subsubsection.3.18.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.18.2}DS390 Memory Model}{54}{subsection.3.18.2}}
\newlabel{sec:Pragmas}{{3.19}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.19}Pragmas}{55}{section.3.19}}
\newlabel{6@xvr}{{}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{6@vr}{{}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{ite:callee_saves-function1[,function2[,function3...]]--}{{3.19}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{7@xvr}{{}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{7@vr}{{}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{ite:less_pedantic}{{3.19}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{8@xvr}{{}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{8@vr}{{}{55}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{ite:pedantic_parse_number}{{3.19}{56}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{9@xvr}{{}{56}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\newlabel{9@vr}{{}{56}{Pragmas\label {sec:Pragmas}\index {Pragmas}\relax }{section.3.19}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.20}Defines Created by the Compiler}{57}{section.3.20}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Notes on supported Processors}{59}{chapter.4}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{sub:MCS51-variants}{{4.1}{59}{MCS51 variants\label {sub:MCS51-variants}\index {MCS51 variants}\relax }{section.4.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}MCS51 variants}{59}{section.4.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}pdata access by SFR }{59}{subsection.4.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.2}Other Features available by SFR}{59}{subsection.4.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.3}Bankswitching}{59}{subsection.4.1.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3.1}Hardware}{59}{subsubsection.4.1.3.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3.2}Software}{60}{subsubsection.4.1.3.2}}
\@writefile{toc}{\contentsline {section}{\numberline {4.2}DS400 port}{60}{section.4.2}}
\@writefile{toc}{\contentsline {section}{\numberline {4.3}The Z80 and gbz80 port}{60}{section.4.3}}
\@writefile{toc}{\contentsline {section}{\numberline {4.4}The HC08 port}{61}{section.4.4}}
\@writefile{toc}{\contentsline {section}{\numberline {4.5}The PIC14 port}{61}{section.4.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.1}PIC Code Pages and Memory Banks}{61}{subsection.4.5.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.2}Adding New Devices to the Port }{61}{subsection.4.5.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.3}Interrupt Code}{62}{subsection.4.5.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.4}Linking and Assembling}{62}{subsection.4.5.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.5}Command-Line Options}{62}{subsection.4.5.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.6}Environment Variables}{63}{subsection.4.5.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.7}The Library}{63}{subsection.4.5.7}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.7.1}error: missing definition for symbol ``\_\_gptrget1''}{63}{subsubsection.4.5.7.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.7.2}Processor mismatch in file ``XXX''.}{63}{subsubsection.4.5.7.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.8}Known Bugs}{63}{subsection.4.5.8}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.8.1}Function arguments}{63}{subsubsection.4.5.8.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.8.2}Regression tests fail}{63}{subsubsection.4.5.8.2}}
\@writefile{toc}{\contentsline {section}{\numberline {4.6}The PIC16 port}{64}{section.4.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.1}Global Options}{64}{subsection.4.6.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.2}Port Specific Options}{64}{subsection.4.6.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.2.1}Code Generation Options}{64}{subsubsection.4.6.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.2.2}Optimization Options}{64}{subsubsection.4.6.2.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.2.3}Assembling Options}{65}{subsubsection.4.6.2.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.2.4}Linking Options}{65}{subsubsection.4.6.2.4}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.2.5}Debugging Options}{65}{subsubsection.4.6.2.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.3}Environment Variables}{65}{subsection.4.6.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.4}Preprocessor Macros}{66}{subsection.4.6.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.5}Directories}{66}{subsection.4.6.5}}
\newlabel{sub:PIC16_Pragmas}{{4.6.6}{66}{Pragmas\label {sub:PIC16_Pragmas}\relax }{subsection.4.6.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.6}Pragmas}{66}{subsection.4.6.6}}
\newlabel{sub:PIC16_Header-Files}{{4.6.7}{68}{Header Files\label {sub:PIC16_Header-Files}\relax }{subsection.4.6.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.7}Header Files}{68}{subsection.4.6.7}}
\newlabel{sub:pic16Libraries}{{4.6.8}{68}{Libraries\label {sub:pic16Libraries}\relax }{subsection.4.6.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.8}Libraries}{68}{subsection.4.6.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.9}Adding New Devices to the Port}{68}{subsection.4.6.9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.10}Memory Models}{69}{subsection.4.6.10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.11}Stack}{69}{subsection.4.6.11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.12}Functions}{70}{subsection.4.6.12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.13}Function return values}{70}{subsection.4.6.13}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.14}Interrupts}{71}{subsection.4.6.14}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.15}Generic Pointers}{71}{subsection.4.6.15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.16}PIC16 C Libraries}{72}{subsection.4.6.16}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.16.1}Standard I/O Streams}{72}{subsubsection.4.6.16.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.16.2}Printing functions}{73}{subsubsection.4.6.16.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.16.3}Signals}{73}{subsubsection.4.6.16.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.17}PIC16 Port -- Tips}{74}{subsection.4.6.17}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.17.1}Stack size}{74}{subsubsection.4.6.17.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.18}Known Bugs}{74}{subsection.4.6.18}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.18.1}Extended Instruction Set}{74}{subsubsection.4.6.18.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.18.2}Regression Tests}{74}{subsubsection.4.6.18.2}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Debugging}{75}{chapter.5}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{cha:Debugging-with-SDCDB}{{5.1}{76}{Debugging with SDCDB\label {cha:Debugging-with-SDCDB}\index {SDCDB (debugger)} \relax }{section.5.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Debugging with SDCDB }{76}{section.5.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.1}Compiling for Debugging}{76}{subsection.5.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.2}How the Debugger Works}{76}{subsection.5.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.3}Starting the Debugger SDCDB}{76}{subsection.5.1.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.4}SDCDB Command Line Options}{77}{subsection.5.1.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.5}SDCDB Debugger Commands}{77}{subsection.5.1.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.6}Interfacing SDCDB with DDD}{79}{subsection.5.1.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1.7}Interfacing SDCDB with XEmacs}{79}{subsection.5.1.7}}
\@writefile{toc}{\contentsline {chapter}{\numberline {6}TIPS}{81}{chapter.6}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{type promotion}{{6}{81}{TIPS\relax }{chapter.6}{}}
\newlabel{sec:Porting-code-to-other-compilers}{{6.1}{82}{Porting code from or to other compilers\label {sec:Porting-code-to-other-compilers}\relax }{section.6.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6.1}Porting code from or to other compilers}{82}{section.6.1}}
\@writefile{toc}{\contentsline {section}{\numberline {6.2}Tools included in the distribution}{83}{section.6.2}}
\@writefile{toc}{\contentsline {section}{\numberline {6.3}Documentation included in the distribution}{83}{section.6.3}}
\newlabel{sec:Related-open-source-tools}{{6.4}{84}{Related open source tools\label {sec:Related-open-source-tools}\index {Related tools}\relax }{section.6.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {6.4}Related open source tools}{84}{section.6.4}}
\@writefile{toc}{\contentsline {section}{\numberline {6.5}Related documentation / recommended reading}{84}{section.6.5}}
\@writefile{toc}{\contentsline {section}{\numberline {6.6}Application notes specifically for SDCC}{84}{section.6.6}}
\@writefile{toc}{\contentsline {section}{\numberline {6.7}Some Questions}{85}{section.6.7}}
\@writefile{toc}{\contentsline {chapter}{\numberline {7}Support}{86}{chapter.7}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {7.1}Reporting Bugs}{86}{section.7.1}}
\newlabel{sub:Requesting-Features}{{7.2}{87}{Requesting Features\label {sub:Requesting-Features}\index {Feature request}\index {Requesting features}\relax }{section.7.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.2}Requesting Features}{87}{section.7.2}}
\@writefile{toc}{\contentsline {section}{\numberline {7.3}Submitting patches}{87}{section.7.3}}
\@writefile{toc}{\contentsline {section}{\numberline {7.4}Getting Help}{87}{section.7.4}}
\@writefile{toc}{\contentsline {section}{\numberline {7.5}ChangeLog}{87}{section.7.5}}
\@writefile{toc}{\contentsline {section}{\numberline {7.6}Subversion Source Code Repository}{87}{section.7.6}}
\@writefile{toc}{\contentsline {section}{\numberline {7.7}Release policy}{87}{section.7.7}}
\@writefile{toc}{\contentsline {section}{\numberline {7.8}Examples}{87}{section.7.8}}
\newlabel{sec:Quality-control}{{7.9}{88}{Quality control\label {sec:Quality-control}\index {Quality control}\relax }{section.7.9}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7.9}Quality control}{88}{section.7.9}}
\@writefile{toc}{\contentsline {section}{\numberline {7.10}Use of SDCC in Education}{88}{section.7.10}}
\@writefile{toc}{\contentsline {chapter}{\numberline {8}SDCC Technical Data}{89}{chapter.8}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {8.1}Optimizations}{89}{section.8.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.1}Sub-expression Elimination}{89}{subsection.8.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.2}Dead-Code Elimination}{89}{subsection.8.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.3}Copy-Propagation}{90}{subsection.8.1.3}}
\newlabel{sub:Loop-Optimizations}{{8.1.4}{90}{Loop Optimizations\index {Loop optimization}\label {sub:Loop-Optimizations}\relax }{subsection.8.1.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.4}Loop Optimizations}{90}{subsection.8.1.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.5}Loop Reversing}{91}{subsection.8.1.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.6}Algebraic Simplifications}{91}{subsection.8.1.6}}
\newlabel{sub:'switch'-Statements}{{8.1.7}{91}{'switch' Statements\label {sub:'switch'-Statements}\index {switch statement}\relax }{subsection.8.1.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.7}'switch' Statements}{91}{subsection.8.1.7}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.8}Bit-shifting Operations.}{93}{subsection.8.1.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.9}Bit-rotation}{93}{subsection.8.1.9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.10}Nibble and Byte Swapping}{94}{subsection.8.1.10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.11}Highest Order Bit / Any Order Bit}{94}{subsection.8.1.11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.12}Higher Order Byte / Higher Order Word}{95}{subsection.8.1.12}}
\newlabel{sub:Peephole-Optimizer}{{8.1.13}{96}{Peephole Optimizer\label {sub:Peephole-Optimizer}\index {Peephole optimizer}\relax }{subsection.8.1.13}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1.13}Peephole Optimizer}{96}{subsection.8.1.13}}
\newlabel{sub:ANSI-Compliance}{{8.2}{98}{ANSI-Compliance\index {ANSI-compliance}\label {sub:ANSI-Compliance}\relax }{section.8.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {8.2}ANSI-Compliance}{98}{section.8.2}}
\@writefile{toc}{\contentsline {section}{\numberline {8.3}Cyclomatic Complexity}{99}{section.8.3}}
\@writefile{toc}{\contentsline {section}{\numberline {8.4}Retargetting for other Processors}{99}{section.8.4}}
\@writefile{toc}{\contentsline {chapter}{\numberline {9}Compiler internals}{101}{chapter.9}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{sub:The-anatomy-of}{{9.1}{101}{The anatomy of the compiler\label {sub:The-anatomy-of}\relax }{section.9.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {9.1}The anatomy of the compiler}{101}{section.9.1}}
\gdef \LT@ii {\LT@entry 
    {1}{72.31685pt}\LT@entry 
    {1}{71.91685pt}\LT@entry 
    {1}{113.11761pt}\LT@entry 
    {1}{195.51913pt}}
\@writefile{toc}{\contentsline {section}{\numberline {9.2}A few words about basic block successors, predecessors and dominators}{107}{section.9.2}}
\@writefile{toc}{\contentsline {chapter}{\numberline {10}Acknowledgments}{108}{chapter.10}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
