Everything

-stuff


< Compile Options / Object Options >

[Format]

-stuff

[Description]

-

When the stuff option is specified, all variables are allocated to 4-byte, 2-byte, or 1-byte boundary alignment sections depending on the alignment value (see Table 2.4).

-

[V3.01.00 or later] When the dpfpu option is specified, double type and long double type variables are allocated to 8-byte boundary alignment sections.

Table 2.4

Correspondences between Variables and Their Output Sections When stuff Option is Specified

Variable Type

Alignment Value for Variable

Section to Which Variable Belongs

const qualified variables

4

C_8*1

 

C*2

2

C_2

1

C_1

Initialized variables

4

D_8*1

 

D*2

2

D_2

1

D_1

Uninitialized variables

4

B_8*1

 

B*2

2

B_2

1

B_1

switch statement branch table

4

W

2

W_2

1

W_1

Notes 1.

When the variable type is double or long double with the dpfpu option specified

Notes 2.

Cases other than note 1

-

C, D, and B are the section names specified by the section option or #pragma section. W is the section name specified by the section option. The data contents allocated to each section are output in the order they were defined.

[Example]

int a;
char b=0;
const short c=0;
struct {
        char x;
        char y;
} ST;
        .SECTION                C_2,ROMDATA,ALIGN=2
        .glb        _c
_c:
        .word                   0000H
        .SECTION                D_1,ROMDATA
        .glb        _b
_b:
        .byte                   00H
        .SECTION                B,DATA,ALIGN=4
        .glb        _a
_a:
        .blkl        1
        .SECTION                B_1,DATA
        .glb        _ST
_ST
        .blkb        2

[Remarks]

-

The stuff option has no effect for sections other than B, D, C, and W.