- —acall-ajmp
- 3.3.6 MCS51 Options
| 8.1.16 Peephole Optimizer
- —all-callee-saves
- 3.3.4 Other Options
- —allow-unsafe-read
- 3.3.3 Optimization Options
- —c1mode
- 3.3.4 Other Options
- —callee-saves
- 3.3.4 Other Options
| 4.1.5.2 Register usage
- —code-loc <Value>
- 3.3.5 Linker Options
| 3.5.1.9 Notes on MCS51 memory
- —code-size <Value>
- 3.3.6 MCS51 Options
| 3.5.1.9 Notes on MCS51 memory
- —codeseg <Value>
- 3.3.4 Other Options
- —compile-only
- 3.3.4 Other Options
- —constseg <Value>
- 3.3.4 Other Options
- —cyclomatic
- 3.3.4 Other Options
- —data-loc <Value>
- 3.3.5 Linker Options
| 3.5.1.9 Notes on MCS51 memory
- —debug
- 3.2.1 Single Source File Projects
| 3.3.3 Optimization Options
| 3.3.3 Optimization Options
| 3.3.4 Other Options
| 4.7.2.5 Debugging Options
| 5.1.1 Compiling for Debugging
- —disable-warning
- 3.3.4 Other Options
- —dump-ast
- 3.3.13 Intermediate Dump Options
- —dump-graphs
- 3.3.13 Intermediate Dump Options
- —dump-i-code
- 3.3.13 Intermediate Dump Options
- —dumpall
- 7.1 Reporting Bugs
- —fdollars-in-identifiers
- 3.3.4 Other Options
- —float-reent
- 3.3.4 Other Options
- —fomit-frame-pointer
- 3.3.3 Optimization Options
- —fsigned-char
- 3.1.8.4 Characters
| 3.3.4 Other Options
- —i-code-in-asm
- 3.3.4 Other Options
- —idata-loc <Value>
- 3.3.5 Linker Options
- —int-long-reent
- 3.3.4 Other Options
| 3.8.1.4 Common interrupt pitfall: use
| 3.12 Support routines for integer
- —iram-size <Value>
- 3.3.6 MCS51 Options
| 3.5.1.9 Notes on MCS51 memory
| 4.1.4 MCS51/DS390 Startup Code
- —less-pedantic
- 3.3.4 Other Options
- —lib-path <path>
- 3.3.5 Linker Options
- —max-allocs-per-node
- 3.3.3 Optimization Options
- —model-huge
- 3.3.6 MCS51 Options
- —model-large
- 3.3.6 MCS51 Options
| 3.3.11 STM8 Options
| 3.3.12 MOS6502 Options (apply to
| 3.14.2.1.2 printf()
- —model-medium
- 3.3.6 MCS51 Options
| 3.3.11 STM8 Options
- —model-small
- 3.3.6 MCS51 Options
| 3.3.12 MOS6502 Options (apply to
- —more-pedantic
- 3.3.4 Other Options
- —no-c-code-in-asm
- 3.3.4 Other Options
- —no-gen-comments
- 3.3.13 Intermediate Dump Options
- —no-peep
- 3.3.3 Optimization Options
- —no-peep-comments
- 3.3.4 Other Options
- —no-peep-return
- 3.3.3 Optimization Options
- —no-ret-without-call
- 3.3.6 MCS51 Options
- —no-std-crt0
- 4.3.1 Startup Code
| 4.8.1 Startup Code
- —no-xinit-opt
- 3.3.3 Optimization Options
| 4.1.4 MCS51/DS390 Startup Code
- —no-zp-spill
- 3.3.12 MOS6502 Options (apply to
- —nogcse
- 3.3.3 Optimization Options
- —noinduction
- 3.3.3 Optimization Options
- —noinvariant
- 3.3.3 Optimization Options
- —nolabelopt
- 3.3.3 Optimization Options
- —noloopreverse
- 3.3.3 Optimization Options
- —nolospre
- 3.3.3 Optimization Options
- —nooverlay
- 3.3.3 Optimization Options
- —nostdinc
- 3.3.4 Other Options
- —nostdlib
- 3.3.4 Other Options
- —nostdlibcall
- 3.3.3 Optimization Options
- —opt-code-size
- 3.3.3 Optimization Options
- —opt-code-speed
- 3.3.3 Optimization Options
- —out-fmt-ihx
- 3.3.5 Linker Options
- —out-fmt-s19
- 3.2.1 Single Source File Projects
| 3.3.5 Linker Options
| 3.3.5 Linker Options
- —peep-asm
- 3.3.3 Optimization Options
| 3.11.2 A Step by Step
- —peep-file
- 3.3.3 Optimization Options
| 8.1.16 Peephole Optimizer
- —peep-return
- 3.3.3 Optimization Options
- —print-search-dirs
- 2.7 Testing the SDCC Compiler
| 3.3.4 Other Options
- —stack-auto
- 3.3.4 Other Options
| 3.3.7 DS390 / DS400 Options
| 3.6 Parameters and Local Variables
| 3.8.1.4 Common interrupt pitfall: use
| 3.12 Support routines for integer
| 3.15.1.2 External Stack
| 3.16 Pragmas
- —stack-loc <Value>
- 3.3.5 Linker Options
| 3.5.1.9 Notes on MCS51 memory
- —stack-size <Value>
- 3.3.6 MCS51 Options
- —std-c11
- 1.5 Compatibility with previous versions
| 1.5 Compatibility with previous versions
| 3.1.4 ISO C11 and ISO
- —std-c23
- 1.5 Compatibility with previous versions
| 1.5 Compatibility with previous versions
| 3.1.5 ISO C23
- —std-c2y
- 3.1.6 ISO C2y preview
- —std-c89
- 3.3.4 Other Options
- —std-c90
- 1.5 Compatibility with previous versions
| 1.5 Compatibility with previous versions
| 1.5 Compatibility with previous versions
| 3.1.1 ISO C90 and ANSI
- —std-c95
- 3.1.2 ISO C95
- —std-c99
- 1.5 Compatibility with previous versions
| 1.5 Compatibility with previous versions
| 1.5 Compatibility with previous versions
| 3.1.3 ISO C99
- —std-sdcc11
- 3.3.4 Other Options
| 3.3.4 Other Options
- —std-sdcc17
- 3.3.4 Other Options
| 3.3.4 Other Options
- —std-sdcc23
- 3.3.4 Other Options
| 3.3.4 Other Options
- —std-sdcc2y
- 3.3.4 Other Options
| 3.3.4 Other Options
- —std-sdcc89
- 3.3.4 Other Options
- —std-sdcc99
- 3.3.4 Other Options
| 3.3.4 Other Options
| 3.3.4 Other Options
- —syntax-only
- 3.3.4 Other Options
- —use-non-free
- 1.2 SDCC Suite Licenses
| 3.3.4 Other Options
| 4.6.5 Linking and Assembling
| 4.7.5 Directories
| 4.7.7 Header Files and Libraries
- —use-stdout
- 3.3.4 Other Options
| 3.3.14 Redirecting output on Windows
- —vc
- 3.3.4 Other Options
| 3.3.14 Redirecting output on Windows
- —verbose
- 3.3.4 Other Options
- —version
- 3.3.4 Other Options
- —Werror
- 3.3.4 Other Options
- —xdata-loc<Value>
- 3.5.1.9 Notes on MCS51 memory
- —xram-loc <Value>
- 3.3.5 Linker Options
- —xram-size <Value>
- 3.3.6 MCS51 Options
| 3.5.1.9 Notes on MCS51 memory
- —xstack
- 3.3.6 MCS51 Options
| 3.3.7 DS390 / DS400 Options
| 3.5.1.4 __pdata
| 3.15.1.2 External Stack
- —xstack-loc <Value>
- 3.3.5 Linker Options
- -Aquestion(answer)
- 3.3.2 Preprocessor Options
- -C
- 3.3.2 Preprocessor Options
| 3.3.4 Other Options
- -D<macro[=value]>
- 3.3.2 Preprocessor Options
- -dD
- 3.3.2 Preprocessor Options
- -dM
- 3.3.2 Preprocessor Options
- -dN
- 3.3.2 Preprocessor Options
- -E
- 3.3.2 Preprocessor Options
| 3.3.4 Other Options
- -I<path>
- 3.3.2 Preprocessor Options
- -L <path>
- 3.3.5 Linker Options
- -M
- 3.3.2 Preprocessor Options
- -mds390
- 3.3.1 Processor Selection Options
- -mds400
- 3.3.1 Processor Selection Options
- -mez80_z80
- 3.3.1 Processor Selection Options
- -mhc08
- 3.3.1 Processor Selection Options
- -MM
- 3.3.2 Preprocessor Options
- -mmcs51
- 3.3.1 Processor Selection Options
- -mmos6502
- 3.3.1 Processor Selection Options
- -mmos65c02
- 3.3.1 Processor Selection Options
- -mpdk13
- 3.3.1 Processor Selection Options
- -mpdk14
- 3.3.1 Processor Selection Options
- -mpdk15
- 3.3.1 Processor Selection Options
- -mpic14
- 3.3.1 Processor Selection Options
- -mpic16
- 3.3.1 Processor Selection Options
- -mr2k
- 3.3.1 Processor Selection Options
- -mr3ka
- 3.3.1 Processor Selection Options
- -ms08
- 3.3.1 Processor Selection Options
- -msm83
- 3.3.1 Processor Selection Options
- -mstm8
- 3.3.1 Processor Selection Options
- -mtlcs90
- 3.3.1 Processor Selection Options
- -mz180
- 3.3.1 Processor Selection Options
- -mz80
- 3.3.1 Processor Selection Options
- -o <path/file>
- 3.3.4 Other Options
- -S
- 3.3.4 Other Options
- -Umacro
- 3.3.2 Preprocessor Options
- -v
- 3.3.4 Other Options
| 3.3.4 Other Options
- -Wa asmOption[,asmOption]
- 3.3.4 Other Options
- -Wl linkOption[,linkOption]
- 3.3.5 Linker Options
- -Wp preprocessorOption[,preprocessorOption]
- 3.3.2 Preprocessor Options
- -x <type>
- 3.3.4 Other Options
- 8031, 8032, 8051, 8052, mcs51 CPU
- 1.1 About SDCC
- <file>.adb
- 3.2.1 Single Source File Projects
| 5.1.1 Compiling for Debugging
- <file>.asm
- 3.2.1 Single Source File Projects
- <file>.cdb
- 3.2.1 Single Source File Projects
| 5.1.1 Compiling for Debugging
- <file>.dump*
- 3.2.1 Single Source File Projects
- <file>.ihx
- 3.2.1 Single Source File Projects
| 3.2.2 Postprocessing the Intel Hex
- <file>.lib
- 3.2.4 Projects with Additional Libraries
- <file>.lnk
- 3.2.3 Projects with Multiple Source
- <file>.lst
- 3.2.1 Single Source File Projects
| 3.5.8 Absolute Addressing
- <file>.map
- 3.2.1 Single Source File Projects
| 3.5.1.9 Notes on MCS51 memory
| 3.5.8 Absolute Addressing
- <file>.mem
- 3.2.1 Single Source File Projects
| 3.5.1.9 Notes on MCS51 memory
- <file>.omf
- 3.2.1 Single Source File Projects
- <file>.rel
- 3.2.1 Single Source File Projects
| 3.2.3 Projects with Multiple Source
| 3.2.4 Projects with Additional Libraries
- <file>.rst
- 3.2.1 Single Source File Projects
| 3.5.8 Absolute Addressing
- <file>.sym
- 3.2.1 Single Source File Projects
- <NO FLOAT>
- 3.14.2.1.2 printf()
| Output of float values via
- <stdio.h>
- 3.14.2.1.1 getchar(), putchar()
- ~ Operator
- 1.5 Compatibility with previous versions
| 6.1 Porting code from or
- Absolute addressing
- no title
| 3.6 Parameters and Local Variables
- ACC (mcs51, ds390 register)
- 4.1.5.1 Global Registers used for
- __addressmod
- 3.5.7 Non-intrinsic named address spaces
| 3.5.7 Non-intrinsic named address spaces
- Aligned array
- 3.5.8 Absolute Addressing
| 3.11.2 A Step by Step
| 3.11.2 A Step by Step
- Annotated syntax tree
- Parsing
- Any Order Bit
- no title
- AOMF, AOMF51
- 3.2.1 Single Source File Projects
| 3.3.4 Other Options
| 5. Debugging
| 5. Debugging
- Application notes
- 6.7 Application notes specifically for
- __asm
- 3.9.2 Enabling and Disabling Interrupts
| 3.11.2 A Step by Step
| 3.11.2 A Step by Step
| 3.11.2 A Step by Step
| 3.11.3 Naked Functions
| 3.11.4 Use of Labels within
- Assembler documentation
- 3.11.2 A Step by Step
| 6.3 Documentation included in the
- Assembler listing
- 3.2.1 Single Source File Projects
| 3.2.1 Single Source File Projects
- Assembler options
- 3.3.4 Other Options
- Assembler routines
- 3.9.2 Enabling and Disabling Interrupts
| no title
| no title
| 8.1.16 Peephole Optimizer
- Assembler routines (non-reentrant)
- 4.1.5.3 Assembler Routine (non-reentrant)
- Assembler routines (reentrant)
- 4.1.5.4 Assembler Routine (reentrant)
- Assembler source
- 3.2.1 Single Source File Projects
- __at
- 3.5.1.7 __sfr / __sfr16 /
| 3.5.1.7 __sfr / __sfr16 /
| 3.5.2.2 __banked __sfr (in/out to
| 3.5.3.1 __sfr
| 3.5.8 Absolute Addressing
| 3.5.8 Absolute Addressing
| 3.5.8 Absolute Addressing
| 3.5.8 Absolute Addressing
| 3.6 Parameters and Local Variables
| 3.11.2 A Step by Step
- atomic
- 3.8.1.2 Common interrupt pitfall: non-atomic
| 3.9.3 Semaphore locking (mcs51/ds390)
| 3.9.3 Semaphore locking (mcs51/ds390)
- B (mcs51, ds390 register)
- 4.1.5.1 Global Registers used for
- backfill unused memory
- 3.2.2 Postprocessing the Intel Hex
- banked
- 4.1.3.2 Software
- Bankswitching
- 4.1.3 Bankswitching
- Basic blocks
- 9.2 A few words about
- Binary constants
- no title
- __bit
- 1.5 Compatibility with previous versions
| 3.3.5 Linker Options
| no title
| 3.5.1.9 Notes on MCS51 memory
| 3.5.8 Absolute Addressing
| 3.5.8 Absolute Addressing
| 6.1 Porting code from or
- Bit rotation
- no title
- Bit shifting
- no title
- Bit toggling
- 1.5 Compatibility with previous versions
- bit-fields
- 3.5.1.6 __bit
- block boundary
- 3.5.8 Absolute Addressing
- Boost Software License 1.0 (BSL-1.0)
- 1.2 SDCC Suite Licenses
- Bug reporting
- no title
- Building SDCC
- no title
- Byte swapping
- 8.1.10 Nibble and Byte Swapping
- C FAQ
- 6.6 Related documentation / recommended
- C Reference card
- 6.6 Related documentation / recommended
- Carry flag
- 3.5.1.7 __sfr / __sfr16 /
- Changelog
- 7.5 ChangeLog
- checksum
- 3.2.2 Postprocessing the Intel Hex
- cmake
- 6.5 Related open source tools
- __code
- 3.3.4 Other Options
| 3.3.5 Linker Options
| no title
- code banking
- 4.1.3 Bankswitching
- code page (pic14)
- no title
- Command Line Options
- no title
- Communication
- Bug report
- no title
- Feature request
- no title
- Forums
- 6.4 Communication online at SourceForge
- Mailing lists
- 6.4 Communication online at SourceForge
| 7.4 Getting Help
- Monitor
- 6.4 Communication online at SourceForge
- Patch submission
- no title
- RSS feed
- 6.4 Communication online at SourceForge
- Trackers
- 6.4 Communication online at SourceForge
- wiki
- 6.4 Communication online at SourceForge
- Compatibility with previous versions
- no title
- Compiler internals
- no title
- compiler.h (include file)
- 3.5.1.7 __sfr / __sfr16 /
| 6.1 Porting code from or
- const
- 3.3.4 Other Options
- Copy propagation
- no title
- cpp
- see sdcpp
| see sdcpp
- __critical
- 3.9.1 Critical Functions and Critical
| 3.9.1 Critical Functions and Critical
- Cyclomatic complexity
- 3.3.4 Other Options
| no title
- d52
- 6.5 Related open source tools
- d52 (disassembler)
- 6.5 Related open source tools
- __data (hc08 named address space)
- no title
- __data (mcs51, ds390 named address space)
- 3.3.5 Linker Options
| no title
| 3.5.1.9 Notes on MCS51 memory
| 3.5.1.9 Notes on MCS51 memory
- __data (mos6502 named address space)
- no title
- DDD (debugger)
- 5.1.6 Interfacing SDCDB with DDD
| 6.5 Related open source tools
- Dead-code elimination
- no title
| ICode Example
- Debugger
- 3.2.1 Single Source File Projects
| 5.1 Debugging with SDCDB
- #defines
- 3.17 Defines Created by the
- Defines created by the compiler
- 3.17 Defines Created by the
- DESTDIR
- 2.2 Install paths
- Division
- 3.7 Overlaying
- Documentation
- no title
| no title
- double (not supported)
- Deviations from standard compliance
| Deviations from standard compliance
- download
- 7. Support
| 7.1 Reporting Bugs
- doxygen (source documentation tool)
- 6.5 Related open source tools
- DPTR
- 4.1.2 Other Features available by
| 4.1.5.1 Global Registers used for
| 8.1.10 Nibble and Byte Swapping
- DPTR, DPH, DPL
- 4.1.5.1 Global Registers used for
| 4.1.5.3 Assembler Routine (non-reentrant)
- DS390
- no title
- Options
- —model-flat24
- 3.3.7 DS390 / DS400 Options
- —protect-sp-update
- 3.3.7 DS390 / DS400 Options
- —stack-10bit
- 3.3.7 DS390 / DS400 Options
- —stack-probe
- 3.3.7 DS390 / DS400 Options
- —tini-libid
- 3.3.7 DS390 / DS400 Options
- —use-accelerator
- 3.3.7 DS390 / DS400 Options
- DS390 memory model
- no title
- DS400
- 4.2 DS400 port
- DS80C390
- 3.3.1 Processor Selection Options
- DS80C400
- 3.3.1 Processor Selection Options
| 4.2 DS400 port
| 6.7 Application notes specifically for
- DS89C4x0
- 6.7 Application notes specifically for
- dynamic memory allocation (malloc)
- 3.14.2.2 <malloc.h>
- ELF format
- 3.3.5 Linker Options
- Emacs
- no title
- __endasm
- 3.9.2 Enabling and Disabling Interrupts
| 3.11.2 A Step by Step
| 3.11.2 A Step by Step
| 3.11.2 A Step by Step
| 3.11.3 Naked Functions
| 3.11.4 Use of Labels within
| 3.11.4 Use of Labels within
- Endianness
- 6.1 Porting code from or
| 8.1.10 Nibble and Byte Swapping
- Environment variables
- no title
- Examples
- 7.8 Quality control
| no title
- External stack (mcs51)
- no title
- __far (named address space)
- no title
| 3.11.2 A Step by Step
- Feature request
- no title
- Flags
- 3.5.1.7 __sfr / __sfr16 /
- Flat 24 (DS390 memory model)
- 3.15.2 DS390 Memory Model
- Floating point support
- Deviations from standard compliance
| Deviations from standard compliance
| 3.8.1.4 Common interrupt pitfall: use
| no title
| 3.14.2.1.2 printf()
| 3.14.2.1.2 printf()
- FPGA (field programmable gate array)
- 2.6 Reading the Documentation
- FpgaC ((subset of) C to FPGA compiler)
- 2.6 Reading the Documentation
- function epilogue
- 3.3.4 Other Options
| 3.11.3 Naked Functions
- function parameter
- no title
| 3.6 Parameters and Local Variables
| 4.1.5.3 Assembler Routine (non-reentrant)
| 4.1.5.4 Assembler Routine (reentrant)
- function pointer
- 3.5.1.8 Pointers to MCS51/DS390 intrinsic
- function pointers
- 4.1.5.1 Global Registers used for
- function prologue
- 3.3.4 Other Options
| 3.11.3 Naked Functions
| 3.16 Pragmas
- GBZ80
- Options
- -ba <Num>
- 3.3.10 SM83 Options
- -bo <Num>
- 3.3.10 SM83 Options
- gcc (GNU Compiler Collection)
- 3.3.2 Preprocessor Options
- gdb
- 5.1 Debugging with SDCDB
- generic pointer
- 4.1.5.1 Global Registers used for
- getchar()
- 3.14.2.1.1 getchar(), putchar()
- GPLv2 license
- 1.2 SDCC Suite Licenses
- GPLv2+LE
- 1.2 SDCC Suite Licenses
| 3.14.4 Other libraries
- GPLv3 license
- 1.2 SDCC Suite Licenses
- gpsim (pic simulator)
- 6.5 Related open source tools
- gputils (pic tools)
- 4.6.5 Linking and Assembling
| 6.5 Related open source tools
- HC08
- 3.3.1 Processor Selection Options
| 3.3.5 Linker Options
| 3.5.4.1 __data
| no title
| 4.4 The HC08 and S08
| 4.4.1 Startup Code
- interrupt
- 3.8.3 HC08 Interrupt Service Routines
| 3.9.2 Enabling and Disabling Interrupts
- Options
- —out-fmt-elf
- 3.3.5 Linker Options
- HD64180 (see Z180)
- no title
- Header files
- 3.5.1.7 __sfr / __sfr16 /
| 6.1 Porting code from or
| 6.2 Tools included in the
- heap (malloc)
- 3.14.2.2 <malloc.h>
- Higher Order Byte
- no title
- Higher Order Word
- no title
- I/O memory (Z80, Z180)
- 3.5.2.1 __sfr (in/out to 8-bit
- ICE (in circuit emulator)
- 5. Debugging
- iCode
- 3.3.13 Intermediate Dump Options
| no title
| Code generation
| Code generation
| no title
- __idata (mcs51, ds390 named address space)
- 3.3.5 Linker Options
| no title
| 3.5.1.9 Notes on MCS51 memory
- IDE
- 3.3.4 Other Options
| 6.7 Application notes specifically for
- Include files
- 3.5.1.7 __sfr / __sfr16 /
| 6.1 Porting code from or
| 6.2 Tools included in the
- indent (source formatting tool)
- 6.5 Related open source tools
- Infineon
- 3.3.6 MCS51 Options
- Install paths
- no title
- Install trouble-shooting
- no title
- Installation
- no title
- instruction cycles (count)
- 6.5 Related open source tools
- Intel hex format
- 3.2.1 Single Source File Projects
| no title
| 3.3.5 Linker Options
| 5.1.3 Starting the Debugger SDCDB
- Intermediate dump options
- no title
- __interrupt
- 3.5.1.9 Notes on MCS51 memory
| 3.5.1.9 Notes on MCS51 memory
| 3.7 Overlaying
| 3.8.1 General Information
| 3.8.1 General Information
| 3.8.2 MCS51/DS390 Interrupt Service Routines
| 3.8.7 STM8 Interrupt Service Routines
| 3.9.1 Critical Functions and Critical
| 3.9.2 Enabling and Disabling Interrupts
| 3.9.3 Semaphore locking (mcs51/ds390)
| 3.10 Functions using private register
| 3.11.2 A Step by Step
| 3.11.3 Naked Functions
| 3.11.3 Naked Functions
| 3.12 Support routines for integer
| 3.16 Pragmas
| 3.16 Pragmas
- interrupt jitter
- 3.9.2 Enabling and Disabling Interrupts
- interrupt latency
- 3.9.2 Enabling and Disabling Interrupts
- interrupt mask
- 3.9.2 Enabling and Disabling Interrupts
- interrupt priority
- 3.9.2 Enabling and Disabling Interrupts
| 3.10 Functions using private register
- interrupt vector table
- 3.3.5 Linker Options
| 3.8.1 General Information
| 3.8.2 MCS51/DS390 Interrupt Service Routines
| 3.16 Pragmas
- interrupts
- 3.10 Functions using private register
- intrinsic named address space
- 3.7 Overlaying
| 3.15.1.1 Small, Medium, Large and
- jump tables
- 8.1.7 'switch' Statements
- K&R style
- Deviations from standard compliance
- Labels
- 3.11.4 Use of Labels within
- LGPLv2.1 license
- 1.2 SDCC Suite Licenses
- Libraries
- no title
| 3.3.4 Other Options
| 3.3.5 Linker Options
| 3.5.1.8 Pointers to MCS51/DS390 intrinsic
| no title
| 3.14.4 Other libraries
- Linker
- 3.2.3 Projects with Multiple Source
- Linker documentation
- 6.3 Documentation included in the
- Linker options
- no title
- lint (syntax checking tool)
- 3.3.4 Other Options
| 5. Debugging
- little-endian
- 8.1.10 Nibble and Byte Swapping
- Live range analysis
- 8.3 Retargetting for other Processors
| no title
| ICode Example
- local variables
- no title
| 3.6 Parameters and Local Variables
| 3.7 Overlaying
| 3.15.1.2 External Stack
| 6. TIPS
- lock
- 3.9.3 Semaphore locking (mcs51/ds390)
- Loop optimization
- no title
| ICode Example
- Loop reversing
- 3.3.3 Optimization Options
| no title
- mailing list
- 6.4 Communication online at SourceForge
- Mailing list(s)
- 7. Support
| 7.4 Getting Help
- Makefile
- 6.5 Related open source tools
- malloc.h
- no title
- MCS51
- 3.3.1 Processor Selection Options
- MCS51 memory
- no title
- MCS51 memory model
- no title
- MCS51 options
- no title
- MCS51 variants
- no title
| 8.1.16 Peephole Optimizer
- Memory bank (pic14)
- no title
- Memory map
- 3.2.1 Single Source File Projects
| 6.1 Porting code from or
- Memory model
- 3.5.1.8 Pointers to MCS51/DS390 intrinsic
| 3.7 Overlaying
| no title
| no title
| no title
| no title
- Microchip
- 4.6 The PIC14 port
| 4.7 The PIC16 port
- MOS6502
- 3.5.6.1 __zp/__data /__near
| 4.8 The MOS6502 port
| 4.8.1 Startup Code
- MOS6502 memory models
- no title
- MOS6502 options
- no title
- Motorola S19 format
- 3.2.1 Single Source File Projects
| 3.3.5 Linker Options
- MSVC output style
- 3.3.4 Other Options
- msys
- 2.4.5 Building SDCC Using Microsoft
- msys2
- 2.4.5 Building SDCC Using Microsoft
- Multiplication
- 3.7 Overlaying
| 8.1.4 Loop Optimizations
| ICode Example
- __naked
- 3.11.3 Naked Functions
| 3.11.3 Naked Functions
| 3.16 Pragmas
| 3.16 Pragmas
| 4.1.5.2 Register usage
- Naked functions
- no title
- __near (named address space)
- no title
- Nibble swapping
- 8.1.10 Nibble and Byte Swapping
- Non-intrinsic named address spaces
- no title
- objdump (tool)
- 3.2.1 Single Source File Projects
| 6.5 Related open source tools
- Object file
- 3.2.1 Single Source File Projects
- Optimization options
- no title
- Optimizations
- no title
| no title
- Options assembler
- 3.3.4 Other Options
- Options DS390
- no title
- Options GBZ80
- no title
- Options intermediate dump
- no title
- Options linker
- no title
- Options MCS51
- no title
- Options MOS6502
- no title
- Options optimization
- no title
- Options other
- no title
- Options PIC16
- no title
- Options preprocessor
- no title
- Options processor selection
- no title
- Options SDCC configuration
- no title
- Options STM8
- no title
- Options Z80
- no title
- Oscilloscope
- 5. Debugging
- Overlaying
- no title
- P2 (mcs51 sfr)
- 3.5.1.4 __pdata
| 3.15.1.2 External Stack
| 4.1.1 pdata access by SFR
- packihx (tool)
- 3.2.2 Postprocessing the Intel Hex
| 6.2 Tools included in the
- Parameter passing
- no title
- Parameters
- no title
- Parsing
- no title
- Patch submission
- 7. Support
| 7.3 Submitting patches
| 7.8 Quality control
- __pdata (mcs51, ds390 named address space)
- 3.3.5 Linker Options
| 3.3.6 MCS51 Options
| no title
| 3.15.1.2 External Stack
| 4.1.1 pdata access by SFR
- PDF version of this document
- 2.6 Reading the Documentation
- pedantic
- 3.3.4 Other Options
| 3.3.4 Other Options
| 3.16 Pragmas
- Peephole optimizer
- 3.3.3 Optimization Options
| 3.11.2 A Step by Step
| no title
- PIC
- 4.7 The PIC16 port
- PIC14
- 3.3.1 Processor Selection Options
| no title
| 4.6 The PIC14 port
| 4.6.8.5 Processor mismatch in file
- Environment variables
- SDCC_PIC14_SPLIT_LOCALS
- 4.6.7 Environment Variables
- interrupt
- 4.6.3 Interrupt Code
- Options
- —debug-extra
- 4.6.6 Command-Line Options
- —no-pcode-opt
- 4.6.6 Command-Line Options
- —stack-loc
- 4.6.6 Command-Line Options
- —stack-size
- 4.6.6 Command-Line Options
- —use-non-free
- 4.6.6 Command-Line Options
- PIC16
- 3.3.1 Processor Selection Options
| no title
| 4.7.4 Preprocessor Macros
| 4.7.5 Directories
| 4.7.6 Pragmas
| 4.7.8 Header Files
| 4.7.9 Libraries
| 4.7.13 Functions
| 4.7.15 Interrupts
| 6.3 Documentation included in the
- Defines
- __pic18fxxxx
- 4.7.4 Preprocessor Macros
| 4.7.4 Preprocessor Macros
- STACK_MODEL_nnn
- 4.7.4 Preprocessor Macros
- Environment variables
- NO_REG_OPT
- 4.7.3 Environment Variables
- OPTIMIZE_BITFIELD_POINTER_GET
- 4.7.3 Environment Variables
- Header files
- 4.7.8 Header Files
- interrupt
- 4.7.15 Interrupts
- Libraries
- 4.7.9 Libraries
- MPLAB
- 4.7.2.3 Assembling Options
- Options
- —callee-saves
- 4.7.1 Global Options
- —use-non-free
- 4.7.1 Global Options
- Pragmas
- #pragma code
- 4.7.6 Pragmas
- #pragma config
- 4.7.6 Pragmas
- #pragma library
- 4.7.6 Pragmas
- #pragma stack
- 4.7.6 Pragmas
- #pragma udata
- 4.7.6 Pragmas
- shadowregs
- 4.7.13 Functions
- stack
- 4.7.12 Stack
| 4.7.19.1 Stack size
- wparam
- 4.7.13 Functions
- Pointer
- no title
| 3.5.1.8 Pointers to MCS51/DS390 intrinsic
- #pragma callee_saves
- 3.3.4 Other Options
| 3.16 Pragmas
| 3.16 Pragmas
- #pragma codeseg
- 3.16 Pragmas
- #pragma constseg
- 3.16 Pragmas
- #pragma disable_warning
- 3.16 Pragmas
- #pragma exclude
- 3.11.3 Naked Functions
| 3.16 Pragmas
| 3.16 Pragmas
- #pragma less_pedantic
- 3.16 Pragmas
- #pragma nogcse
- 3.3.3 Optimization Options
| 3.16 Pragmas
| 3.16 Pragmas
- #pragma noinduction
- 3.3.3 Optimization Options
| 3.16 Pragmas
| 3.16 Pragmas
| 8.1.4 Loop Optimizations
- #pragma noinvariant
- 3.3.3 Optimization Options
| 3.16 Pragmas
- #pragma noiv
- 3.16 Pragmas
- #pragma noloopreverse
- 3.16 Pragmas
- #pragma nooverlay
- 3.7 Overlaying
| 3.7 Overlaying
| 3.8.1.4 Common interrupt pitfall: use
| 3.16 Pragmas
- #pragma opt_code_balanced
- 3.16 Pragmas
- #pragma opt_code_size
- 3.16 Pragmas
- #pragma opt_code_speed
- 3.16 Pragmas
- #pragma preproc_asm
- 3.16 Pragmas
| 3.16 Pragmas
- #pragma restore
- 3.16 Pragmas
| 3.16 Pragmas
- #pragma save
- 3.16 Pragmas
| 3.16 Pragmas
- #pragma sdcc_hash
- 3.16 Pragmas
| 3.16 Pragmas
- #pragma stackauto
- 3.6 Parameters and Local Variables
| 3.16 Pragmas
- #pragma std_c11
- 3.16 Pragmas
- #pragma std_c23
- 3.16 Pragmas
- #pragma std_c2y
- 3.16 Pragmas
- #pragma std_c89
- 3.16 Pragmas
- #pragma std_c99
- 3.16 Pragmas
- #pragma std_sdcc11
- 3.16 Pragmas
- #pragma std_sdcc23
- 3.16 Pragmas
- #pragma std_sdcc2y
- 3.16 Pragmas
- #pragma std_sdcc89
- 3.16 Pragmas
- #pragma std_sdcc99
- 3.16 Pragmas
- Pragmas
- no title
- Preprocessor
- no title
| 3.3.4 Other Options
| 3.16 Pragmas
- Options
- no title
- PIC16 Macros
- no title
- printf()
- 3.14.2.1.2 printf()
| 3.14.2.1.2 printf()
- floating point support
- 3.14.2.1.2 printf()
- parameters
- 6.1 Porting code from or
- PIC16
- 4.7.18.2 Printing functions
- PIC16 Floating point support
- Building the libraries
| Output of float values via
- printf_fast() (mcs51)
- 3.14.2.1.2 printf()
- printf_fast_f() (mcs51)
- 3.14.2.1.2 printf()
- printf_small()
- 3.14.2.1.2 printf()
- printf_tiny() (mcs51)
- 3.14.2.1.2 printf()
- putchar()
- 3.14.2.1.1 getchar(), putchar()
| 6.1 Porting code from or
- Processor selection options
- no title
- project workspace
- 6.5 Related open source tools
- promotion to signed int
- 3.11.2 A Step by Step
| 3.11.2 A Step by Step
| 6. TIPS
- push/pop
- 3.11.2 A Step by Step
| 3.11.3 Naked Functions
| 3.16 Pragmas
| 3.16 Pragmas
- putchar()
- 3.14.2.1.1 getchar(), putchar()
- Quality control
- no title
- reentrant
- 3.3.4 Other Options
| 3.3.4 Other Options
| 3.6 Parameters and Local Variables
| 3.6 Parameters and Local Variables
| 3.7 Overlaying
| 3.12 Support routines for integer
| 3.15.1.1 Small, Medium, Large and
| 4.1.5.3 Assembler Routine (non-reentrant)
| 4.1.5.4 Assembler Routine (reentrant)
- Register allocation
- 8.1.4 Loop Optimizations
| no title
| ICode Example
- register bank (mcs51, ds390)
- 3.5.1.9 Notes on MCS51 memory
| 3.6 Parameters and Local Variables
| 3.10 Functions using private register
- Register-Allocation
- no title
- Regression test
- 6.3 Documentation included in the
| 7.8 Quality control
| 7.10 Use of SDCC in
- Regression test (PIC14)
- 7.8 Quality control
- Regression test (PIC16)
- 4.7.20.2 Regression Tests
- Related tools
- no title
- Release policy
- no title
- Reporting bugs
- no title
- Requesting features
- no title
- return value
- Features missing in some ports
| Features missing in some ports
| 4.1.5.1 Global Registers used for
- rotating bits
- 8.1.9 Bit-rotation
- RSS feed
- 6.4 Communication online at SourceForge
- Runtime library
- 4.1.4 MCS51/DS390 Startup Code
- S08
- 3.3.1 Processor Selection Options
- s51 (simulator)
- 2.9.4 ucsim_51, ucsim_z80, ucsim_stm8 etc.
| 2.9.5 sdcdb - Source Level
- __sbit
- 1.5 Compatibility with previous versions
| no title
- sdar
- no title
- sdas (sdasgb, sdas6808, sdas8051, sdasz80)
- 1.1 About SDCC
| 3.11.2 A Step by Step
| 6.3 Documentation included in the
- SDCC
- Defines
- __SDCC (version macro)
- 3.17 Defines Created by the
- __SDCC_ds390
- 3.17 Defines Created by the
- __SDCC_mcs51
- 3.17 Defines Created by the
- __SDCC_pic16
- 4.7.4 Preprocessor Macros
- __SDCC_z80
- 3.17 Defines Created by the
- SDCC_ALL_CALLEE_SAVES
- 3.17 Defines Created by the
- SDCCCALL
- 3.17 Defines Created by the
- SDCC_FLOAT_REENT
- 3.17 Defines Created by the
- SDCC_INT_LONG_REENT
- 3.17 Defines Created by the
- SDCC_MODEL_FLAT24 (ds390)
- 3.17 Defines Created by the
- SDCC_MODEL_LARGE
- 3.17 Defines Created by the
| 3.17 Defines Created by the
- SDCC_MODEL_MEDIUM
- 3.17 Defines Created by the
- SDCC_MODEL_SMALL
- 3.17 Defines Created by the
- SDCC_OPTIMIZE_SIZE
- 3.17 Defines Created by the
- SDCC_OPTIMIZE_SPEED
- 3.17 Defines Created by the
- SDCC_PARMS_IN_BANK1
- 3.17 Defines Created by the
- SDCC_REVISION (svn revision number)
- 3.17 Defines Created by the
- SDCC_STACK_AUTO
- 3.17 Defines Created by the
- SDCC_STACK_TENBIT (ds390)
- 3.17 Defines Created by the
- SDCC_USE_XSTACK
- 3.17 Defines Created by the
- Environment variables
- NO_REG_OPT
- 4.7.3 Environment Variables
- OPTIMIZE_BITFIELD_POINTER_GET (PIC16)
- 4.7.3 Environment Variables
- SDCC_HOME
- 3.4 Environment variables
- SDCC_INCLUDE
- 3.4 Environment variables
- SDCC_LEAVE_SIGNALS
- 3.4 Environment variables
- SDCC_LIB
- 3.4 Environment variables
- SDCC_PIC14_SPLIT_LOCALS
- 4.6.7 Environment Variables
- TMP, TEMP, TMPDIR
- 3.4 Environment variables
- undocumented
- 3.4 Environment variables
- SDCC Wiki
- 7.7 Release policy
- __sdcc_external_startup
- no title
- SDCDB (debugger)
- 2.9.5 sdcdb - Source Level
| no title
| 6.3 Documentation included in the
| 6.5 Related open source tools
- sdcpp (preprocessor)
- 2.9.2 sdcpp - The C-Preprocessor
| no title
| 3.3.2 Preprocessor Options
| 3.16 Pragmas
- sdld
- 1.1 About SDCC
| 6.3 Documentation included in the
- Search path
- no title
- semaphore
- no title
- __sfr
- no title
| no title
| no title
| no title
| no title
| no title
| 4.1.1 pdata access by SFR
- __sfr16
- no title
| no title
- __sfr32
- no title
- shc08 (simulator)
- 2.9.4 ucsim_51, ucsim_z80, ucsim_stm8 etc.
- signal handler
- 3.4 Environment variables
- sloc (spill location)
- 3.3.3 Optimization Options
- SM83
- no title
- sm83 (GameBoy Z80)
- 3.3.1 Processor Selection Options
| 4.3 The Z80, Z180, Rabbit
- splint (syntax checking tool)
- 3.3.4 Other Options
| 5. Debugging
| 6.5 Related open source tools
- srecord (bin, hex, ... tool)
- 3.2.1 Single Source File Projects
| 3.2.1 Single Source File Projects
| 3.2.2 Postprocessing the Intel Hex
| 3.3.5 Linker Options
| 6.5 Related open source tools
- sstm8 (simulator)
- 2.9.4 ucsim_51, ucsim_z80, ucsim_stm8 etc.
- stack
- 3.3.4 Other Options
| 3.5.1.3 __idata
| 3.5.1.9 Notes on MCS51 memory
| 3.6 Parameters and Local Variables
| 3.6 Parameters and Local Variables
| 3.8.1.3 Common interrupt pitfall: stack
| 3.8.2 MCS51/DS390 Interrupt Service Routines
| 3.9.1 Critical Functions and Critical
| 3.9.2 Enabling and Disabling Interrupts
| no title
| 8.1.4 Loop Optimizations
- stack overflow
- 3.8.1.3 Common interrupt pitfall: stack
- Standard-compliance
- 1.5 Compatibility with previous versions
| no title
- static
- 3.6 Parameters and Local Variables
- Status of documentation
- 1.1 About SDCC
| 2.6 Reading the Documentation
- STM8
- 1.1 About SDCC
- STM8 memory models
- no title
- STM8 options
- no title
- Strength reduction
- 8.1.4 Loop Optimizations
| ICode Example
- struct
- Features missing in some ports
| Features missing in some ports
- Subexpression
- 8.1.6 Algebraic Simplifications
- Subexpression elimination
- 3.3.3 Optimization Options
| no title
- Subversion code repository
- 7. Support
| 7.6 Subversion Source Code Repository
- Support
- no title
- swapping nibbles/bytes
- 8.1.10 Nibble and Byte Swapping
- switch statement
- no title
- Symbol listing
- 3.2.1 Single Source File Projects
- sz80 (simulator)
- 2.9.4 ucsim_51, ucsim_z80, ucsim_stm8 etc.
- tabulator spacing (8 columns)
- 2.4.4 Building SDCC using Cygwin
- Tinibios (DS390)
- 3.15.2 DS390 Memory Model
- Tools
- no title
- Trademarks
- 10. Acknowledgments
- type conversion
- 1.5 Compatibility with previous versions
- type promotion
- 1.5 Compatibility with previous versions
| 3.8.1.4 Common interrupt pitfall: use
| 3.11.2 A Step by Step
| 3.11.2 A Step by Step
| 6. TIPS
- Typographic conventions
- no title
- uCsim
- 6.2 Tools included in the
| 6.3 Documentation included in the
- union
- Features missing in some ports
| Features missing in some ports
- UnxUtils
- 2.4.5 Building SDCC Using Microsoft
- USE_FLOATS
- 3.14.2.1.2 printf()
- __using (mcs51, ds390 register bank)
- 3.5.1.9 Notes on MCS51 memory
| 3.8.1 General Information
| 3.8.2 MCS51/DS390 Interrupt Service Routines
| 3.8.2 MCS51/DS390 Interrupt Service Routines
| 3.10 Functions using private register
| 3.10 Functions using private register
- vararg, va_arg
- 1.5 Compatibility with previous versions
| 1.5 Compatibility with previous versions
| 6.1 Porting code from or
- Variable initialization
- 3.3.3 Optimization Options
| 3.5.8 Absolute Addressing
- version
- 2.7 Testing the SDCC Compiler
| 7.5 ChangeLog
- version macro
- 3.17 Defines Created by the
- volatile
- 3.5.8 Absolute Addressing
| 3.5.8 Absolute Addressing
| 3.8.1.1 Common interrupt pitfall: variable
| 3.9.3 Semaphore locking (mcs51/ds390)
| 3.11.3 Naked Functions
| 6.1 Porting code from or
- VPATH
- no title
- Warnings
- 3.3.4 Other Options
- watchdog
- 4.1.4 MCS51/DS390 Startup Code
| 6.1 Porting code from or
- wiki
- 6.4 Communication online at SourceForge
| 7.7 Release policy
| 8.3 Retargetting for other Processors
- __xdata (hc08 named address space)
- no title
- __xdata (mcs51, ds390 named address space
- 4.1.4 MCS51/DS390 Startup Code
- __xdata (mcs51, ds390 named address space)
- 3.3.5 Linker Options
| no title
| 3.5.1.9 Notes on MCS51 memory
| 3.5.8 Absolute Addressing
- __xdata (mos6502 named address space)
- no title
- XEmacs
- no title
- _XPAGE (mcs51)
- 4.1.1 pdata access by SFR
- xstack
- 3.3.5 Linker Options
- Z180
- 3.3.1 Processor Selection Options
| no title
- I/O memory
- 3.5.2.1 __sfr (in/out to 8-bit
- Options
- —portmode
- 3.5.2.3 __sfr (in0/out0 to 8
- Pragmas
- #pragma portmode
- 3.5.2.3 __sfr (in0/out0 to 8
- Z80
- 3.3.1 Processor Selection Options
| no title
| 3.5.2.1 __sfr (in/out to 8-bit
| 3.8.4 Z80, Z180 and eZ80
| 4.3 The Z80, Z180, Rabbit
| 4.3.1 Startup Code
- I/O memory
- 3.5.2.1 __sfr (in/out to 8-bit
- interrupt
- 3.8.4 Z80, Z180 and eZ80
- Options
- —asm=<Value>
- 3.3.9 Z80 Options (apply to
- —callee-saves-bc
- 3.3.8 Options common to all
- —codeseg <Value>
- 3.3.8 Options common to all
- —constseg <Value>
- 3.3.8 Options common to all
- —fno-omit-frame-pointer
- 3.3.9 Z80 Options (apply to
- —no-std-crt0
- 3.3.8 Options common to all
- —portmode=<Value>
- 3.3.9 Z80 Options (apply to
- —reserve-regs-iy
- 3.3.9 Z80 Options (apply to
- Z80, Z180, SM83, Rabbit 2000/3000, Rabbit 3000A CPU
- 1.1 About SDCC
- zlib/libpng License
- 1.2 SDCC Suite Licenses