Index

—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.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-c89
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 | 3.3.4 Other Options
—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-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 | no title
__data (mcs51, ds390 named address space)
3.3.5 Linker Options | no title | 3.5.1.9 Notes on MCS51 memory
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)
3.1.1 ISO C90 and ANSI | 3.1.5 ISO C23
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
3.1.1 ISO C90 and ANSI | 3.1.5 ISO C23 | 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
3.1.1 ISO C90 and ANSI
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_c89
3.16 Pragmas
#pragma std_c99
3.16 Pragmas
#pragma std_sdcc11
3.16 Pragmas
#pragma std_sdcc23
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
3.1.1 ISO C90 and ANSI | 3.1.5 ISO C23 | 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
3.1.1 ISO C90 and ANSI | 3.1.5 ISO C23
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
3.1.1 ISO C90 and ANSI | 3.1.5 ISO C23
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 | 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
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