SDCC Compiler User Guide

Add to my manuals
92 Pages

advertisement

SDCC Compiler User Guide | Manualzz

Chapter 10

Acknowledgments

http://sdcc.sourceforge.net#Who

Thanks to all the other volunteer developers who have helped with coding, testing, web-page creation, distribution sets, etc. You know who you are :-)

This document was initially written by Sandeep Dutta

All product names mentioned herein may be trademarks of their respective companies.

Alphabetical index

To avoid confusion, the installation and building options for SDCC itself (chapter 2) are not part of the index.

86

Index

-Aquestion(answer),

22

-C,

22

-D<macro[=value]>,

22

-E,

22 ,

25

-I<path>,

22

-L --lib-path,

22

-M,

22

-MM,

22

-S,

25

-Umacro,

22

-V,

26

-Wa asmOption[,asmOption],

26

-Wl linkOption[,linkOption],

23

-Wp preprocessorOption[,preprocessorOption],

22

--c1mode,

25

--callee-saves,

25

--callee-saves-bc,

24

--code-loc <Value>,

23 ,

31

--code-size <Value>,

23 ,

31

--codeseg <Value>,

26

--compile-only,

25

--constseg <Value>,

26

--cyclomatic,

26

--data-loc <Value>,

23 ,

31

--debug,

19 ,

21 ,

25 ,

52 ,

61

--disable-warning,

26

--dumlrange,

27

--dumpall,

27 ,

68

--dumpdeadcode,

27

--dumpgcse,

27

--dumploop,

27

--dumplrange,

27

--dumprange,

27

--dumpraw,

27

--dumpregassign,

27

--float-reent,

26

--i-code-in-asm,

26

--idata-loc <Value>,

23

--int-long-reent,

25 ,

35 ,

43

--iram-size <Value>,

23 ,

31 ,

37

--less-pedantic,

26

--lib-path <path>,

22

--main-return,

26

--model-flat24,

24

--model-large,

23 ,

44

--model-medium,

23

--model-small,

23

87

--no-c-code-in-asm,

26

--no-pack-iram,

23

--no-peep,

25

--no-peep-comments,

26

--no-std-crt0,

24 ,

38

--no-xinit-opt,

24 ,

37

--nogcse,

24

--noinduction,

24

--noinvariant,

24

--nojtbound,

24

--nolabelopt ,

24

--noloopreverse,

24

--nooverlay,

25

--nostdinc,

26

--nostdlib,

26

--opt-code-size,

25

--opt-code-speed,

25

--out-fmt-ihx,

23

--out-fmt-s19,

19 ,

23

--pack-iram,

23

--peep-asm,

25 ,

39

--peep-file,

25 ,

77

--print-search-dirs,

16 ,

26

--protect-sp-update,

24

--stack-10bit,

24

--stack-auto,

24 ,

25 ,

33 ,

35 ,

43 ,

44 ,

46 ,

78

--stack-loc <Value>,

23 ,

31

--stack-probe,

24

--stack-size <Value>,

23

--std-c89,

26 ,

79

--std-c99,

79

--std-sdcc89,

26

--std-sdcc99,

26

--tini-libid,

24

--use-accelerator,

24

--use-stdout,

26 ,

27

--vc,

26 ,

27

--verbose,

26

--xdata-loc<Value>,

31

--xram-loc <Value>,

22

--xram-size <Value>,

23 ,

31

--xstack,

23 ,

24 ,

29 ,

44

-c --compile-only,

25

-dD,

22

-dM,

22

-dN,

22

-mavr,

22

INDEX

-mds390,

21

-mds400,

21

-mgbz80,

21

-mhc08,

21

-mmcs51,

21

-mpic14,

22

-mpic16,

22

-mxa51,

22

-mz80,

21

-o <path/file>,

25

<file> (no extension),

19

<file>.adb,

19 ,

61

<file>.asm,

19

<file>.cdb,

19 ,

61

<file>.dump*,

19

<file>.ihx,

19

<file>.lib,

20

<file>.lnk,

20

<file>.lst,

19 ,

32

<file>.map,

19 ,

31 ,

32

<file>.mem,

19 ,

31

<file>.o,

19

<file>.rel,

19 ,

20

<file>.rst,

19 ,

32

<file>.sym,

19

<stdio.h>,

44

#defines,

47

#pragma callee_saves,

25 ,

45

#pragma codeseg,

46

#pragma constseg,

46

#pragma disable_warning,

45

#pragma exclude,

40 ,

45

#pragma less_pedantic,

45

#pragma nogcse,

24 ,

45 ,

46

#pragma noinduction,

24 ,

45 ,

46 ,

71

#pragma noinvariant,

24 ,

45

#pragma noiv,

46

#pragma nojtbound,

24 ,

46 ,

74

#pragma noloopreverse,

46

#pragma nooverlay,

34 ,

35 ,

46

#pragma opt_code_balanced,

46

#pragma opt_code_size,

46

#pragma opt_code_speed,

46

#pragma portmode,

31

#pragma preproc_asm,

46

#pragma restore,

45 ,

46

#pragma save,

45 ,

46

#pragma stackauto,

33 ,

46

#pragma std_c89,

46

#pragma std_c99,

46

#pragma std_sdcc89,

46

#pragma std_sdcc99,

46

_XPAGE (mcs51),

48

__ (prefix for extended keywords),

79

__asm,

38 –

40

__at,

30 –

33 ,

38

88

INDEX

__bit,

29

__code,

29

__critical,

36

__data (hc08 storage class),

32

__data (mcs51, ds390 storage class),

28 ,

31

__ds390,

47

__endasm,

38 –

41

__far (storage class),

28 ,

38

__hc08,

47

__idata (mcs51, ds390 storage class),

28 ,

31

__interrupt,

31 ,

34 ,

40

__mcs51,

47

__naked,

39 ,

45

__near (storage class),

28

__pdata (mcs51, ds390 storage class),

29

__sbit,

6 ,

30

__sfr,

30 ,

31

__sfr16,

30

__sfr32,

30

__using (mcs51, ds390 register bank),

31 ,

34 ,

35 ,

37

__xdata (hc08 storage class),

32

__xdata (mcs51, ds390 storage class),

28 ,

31 ,

32

__z80,

47

_asm,

36 ,

38 –

40

_endasm,

36 ,

38 –

41

_naked,

39 ,

45

_sdcc_external_startup(),

37

8031, 8032, 8051, 8052, mcs51 CPU,

5

Absolute addressing,

32 ,

33

ACC (mcs51, ds390 register),

41

Aligned array,

32 ,

38

Annotated syntax tree,

81

ANSI-compliance,

6 ,

78

Any Order Bit,

75

AOMF, AOMF51,

19 ,

25

aslink,

5 ,

66

Assembler documentation,

39 ,

66

Assembler listing,

19

Assembler options,

26

Assembler routines,

36 ,

38 ,

41 ,

77

Assembler routines (non-reentrant),

41

Assembler routines (reentrant),

42

Assembler source,

19

asXXXX (as-gbz80, as-hc08, asx8051, as-z80),

5 ,

39 ,

66

at,

30 –

33 ,

38

atomic,

34 ,

37

AVR,

22

B (mcs51, ds390 register),

41

Basic blocks,

27 ,

85

bit,

6 ,

23 ,

29 ,

30 ,

32 ,

33

Bit rotation,

74

Bit shifting,

74

Bit toggling,

6

bitfields,

29

INDEX block boundary,

32

Bug reporting,

68

Building SDCC,

11

Byte swapping,

75

C Reference card,

67

Carry flag,

30

Changelog,

69

code,

23 ,

26 ,

29

code banking (limited support),

7

code page (pic14),

49

Command Line Options,

21

Compatibility with previous versions,

6

Compiler internals,

81

Copy propagation,

71

critical,

36

cvs code repository,

68

Cyclomatic complexity,

26 ,

79

data (hc08 storage class),

32

data (mcs51, ds390 storage class),

23 ,

28 ,

31

DDD (debugger),

63

ddd (debugger),

67

Dead-code elimination,

27 ,

70 ,

83

Debugger,

19 ,

61

Defines created by the compiler,

47

DESTDIR,

10

Division,

34 ,

35

Documentation,

66

double (not supported),

79

download,

68

doxygen (source documentation tool),

67

DPTR,

41 ,

48 ,

75

DPTR, DPH, DPL,

41

DS390 memory model,

45

DS390 options,

24

DS80C390,

21

DS80C400,

21

ELF format,

23

Emacs,

64

Endianness,

75

Environment variables,

27

Examples,

69

External stack (mcs51),

44

far (storage class),

28 ,

38

Feature request,

7 ,

68

Flags,

30

Flat 24 (DS390 memory model),

45

Floating point support,

35 ,

43 ,

79

fpga (field programmable gate array),

15

function epilogue,

25 ,

39

function parameter,

33 ,

41 ,

42

function prologue,

25 ,

39 ,

45

gbz80 (GameBoy Z80),

21 ,

48

gdb,

61

89

INDEX getchar(),

44

Global subexpression elimination,

27

GNU General Public License, GPL,

6

GNU Lesser General Public License, LGPL,

44

gpsim (pic simulator),

67

gputils (pic tools),

49 ,

67

HC08,

21 ,

49

HD64180,

31

Higher Order Byte,

76

Higher Order Word,

76

Highest Order Bit,

75

HTML version of this document,

15

I/O memory (Z80, Z180),

31

iCode,

27 ,

81 ,

82

idata (mcs51, ds390 storage class),

23 ,

28 ,

31

indent (source formatting tool),

67

Install paths,

10

Install trouble-shooting,

16

Installation,

8

int (16 bit),

43

int (64 bit) (not supported),

79

Intel hex format,

19 ,

23 ,

61

Intermediate dump options,

27

interrupt,

31 ,

34 ,

36 ,

37 ,

40 ,

43 ,

45 ,

46 ,

49

interrupt jitter,

36

interrupt latency,

36

interrupt mask,

36

interrupt priority,

36 ,

37

interrupts,

37

jump tables,

72

K&R style,

79

Labels,

41

Libraries,

20 ,

22 ,

26 ,

30 ,

44

Linker,

20

Linker documentation,

66

Linker options,

22

lint (syntax checking tool),

27

little-endian,

75

Live range analysis,

27 ,

80 –

82

local variables,

33 ,

34 ,

44 ,

66

lock,

37

long (32 bit),

43

long long (not supported),

79

longjmp (not supported),

79

Loop optimization,

27 ,

71 ,

83

Loop reversing,

24 ,

72

Mailing list(s),

68 ,

69

main return,

26

MCS51,

21

MCS51 memory,

30

MCS51 memory model,

44

MCS51 options,

23

INDEX

MCS51 variants,

48 ,

77

Memory map,

19

Memory model,

30 ,

34 ,

44 ,

45

Microchip,

50

Modulus,

35

Motorola S19 format,

19 ,

23

Multiplication,

34 ,

35 ,

72 ,

83

Naked functions,

39

near (storage class),

28

Nibble swapping,

75

objdump (tool),

19 ,

67

Object file,

19

Optimization options,

24

Optimizations,

70 ,

81

Options assembler,

26

Options DS390,

24

Options intermediate dump,

27

Options linker,

22

Options MCS51,

23

Options optimization,

24

Options other,

25

Options PIC16,

51

Options preprocessor,

22

Options processor selection,

21

Options SDCC configuration,

8

Options Z80,

24

Overlaying,

34

P2 (mcs51 sfr),

29 ,

45 ,

48

Parameter passing,

41

Parameters,

33

Parsing,

81

Patch submission,

68 ,

69

pdata (mcs51, ds390 storage class),

29 ,

44 ,

48

PDF version of this document,

15

Peephole optimizer,

25 ,

39 ,

77

PIC14,

22 ,

49

PIC16,

22 ,

50 ,

53 ,

54 ,

57 ,

66

Pointer,

30

Pragmas,

45

Preprocessor options,

22

printf(),

44

printf_fast() (mcs51),

44

printf_fast_f() (mcs51),

44

printf_small(),

44

printf_tiny() (mcs51),

44

Processor selection options,

21

push/pop,

39 ,

40 ,

45

putchar(),

44

Quality control,

69

RAM bank (pic14),

49

reentrant,

25 ,

26 ,

33 ,

34 ,

41 –

44 ,

78

Register allocation,

71 ,

81 ,

82

Register assignment,

27

90 register bank (mcs51, ds390),

31 ,

33 ,

37

Regression test,

48 ,

66 ,

69

Related tools,

67

Release policy,

69

Reporting bugs,

68

Requesting features,

7 ,

68

return value,

42 ,

48

rotating bits,

74

Runtime library,

37

s51,

17 ,

18

sbit,

6

SDCC,

47

SDCC_ds390,

47

SDCC_HOME,

28

SDCC_INCLUDE,

28

SDCC_LEAVE_SIGNALS,

27

SDCC_LIB,

28

SDCC_mcs51,

47

SDCC_MODEL_FLAT24,

47

SDCC_MODEL_LARGE,

47

SDCC_MODEL_MEDIUM,

47

SDCC_MODEL_SMALL,

47

SDCC_STACK_AUTO,

47

SDCC_STACK_TENBIT,

47

SDCC_USE_XSTACK,

47

SDCC_z80,

47

sdcclib,

20 ,

21

sdcdb (debugger),

18 ,

61 ,

66 ,

67

sdcpp (preprocessor),

17 ,

22

Search path,

10

semaphore,

37

setjmp (not supported),

79

sfr,

30 ,

31 ,

48

sfr16,

30

sfr32,

30

signal handler,

27

sloc (spill location),

24

splint (syntax checking tool),

27 ,

67

srecord (bin, hex, ... tool),

19 ,

23 ,

67

stack,

23 ,

25 ,

28 ,

31 ,

33 ,

35 ,

36 ,

44 ,

48 ,

71

stack overflow,

35

Startup code,

37

static,

33

Status of documentation,

6 ,

15

Storage class,

28 ,

31 –

34 ,

44

Strength reduction,

71 ,

83

Subexpression,

72

Subexpression elimination,

24 ,

70

Support,

68

swapping nibbles/bytes,

75

switch statement,

24 ,

72 ,

74

Symbol listing,

19

tabulator spacing (8 columns),

13

Test suite,

69

Tinibios (DS390),

45

INDEX

INDEX

TLCS-900H,

22

TMP, TEMP, TMPDIR,

27

Tools,

66

Trademarks,

86

type conversion,

6

type promotion,

6 ,

65

Typographic conventions,

6

UnxUtils,

13

USE_FLOATS,

44

using (mcs51, ds390 register bank),

31 ,

34 ,

35 ,

37

Variable initialization,

24 ,

32 ,

37

version,

15 ,

69

volatile,

32 ,

34 ,

37 ,

40

Warnings,

26

warranty,

6

XA51,

22

xdata (hc08 storage class),

32

xdata (mcs51, ds390 storage class),

22 ,

28 ,

31 ,

32 ,

37

XEmacs,

64

Z180,

31

Z80,

21 ,

31 ,

48

Z80 options,

24

INDEX

91

advertisement

Was this manual useful for you? Yes No
Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Related manuals

Download PDF

advertisement

Table of contents