1/* 8 bit data address relocations (R_CRX_NUM8).  */
2d8 = 0x12;
3/* 16 bit data address relocations (R_CRX_NUM16).  */
4d16 = 0x1234;
5/* 32 bit data address relocations (R_CRX_NUM32).  */
6d32 = 0x12345678;
7
8SECTIONS
9{
10/* 4 bit relocations:
11   Relative address (R_CRX_REL4) : 0x6 + 2 = 0x8
12*/
13  .text_4 0xa :
14  {
15	*(.text_4)
16	foo4 = (. + 0x6);
17  }
18
19/* 8 bit relocations:
20   Relative address (R_CRX_REL8): 0x10 + 2 = 0x12
21   Relative address (R_CRX_REL8_CMP) : 0x10 + 4 = 0x14
22*/
23  .text_8 0xe0 :
24  {
25	*(.text_8)
26	foo8 = (. + 0x10);
27  }
28
29/* 12 bit relocations:
30   Absolute address (R_CRX_REGREL12) : 0x0101 + 0x700 + 4 = 0x805
31*/
32  .text_12 0x0101 :
33  {
34	*(.text_12)
35	foo12 = (. + 0x700);
36  }
37
38/* 16 bit relocations:
39   Relative address (R_CRX_REL16) : 0x1000 + 4 = 0x1004
40   Absolute address (R_CRX_IMM16) : 0x01010 + 0x1000 + 4 = 0x2014
41*/
42  .text_16 0x01010 :
43  {
44	*(.text_16)
45	foo16 = (. + 0x1000);
46  }
47
48/* 22 bit relocations:
49   Absolute address (R_CRX_REGREL22) : 0x0201400 + 0x100000 + 6 = 0x301406
50*/
51  .text_22 0x0201400 :
52  {
53	*(.text_22)
54	foo22 = (. + 0x100000);
55  }
56
57/* 24 bit relocations:
58   Relative address (R_CRX_REL24) : 0xe00000 + 6 = 0xe00006
59*/
60  .text_24 0x0f01400 :
61  {
62	*(.text_24)
63	foo24 = (. + 0xe00000);
64  }
65
66/* 28 bit relocations:
67   Absolute address (R_CRX_REGREL28) : 0x06201400 + 0x3100000 + 6 = 0x9301406
68*/
69  .text_28 0x06201400 :
70  {
71	*(.text_28)
72	foo28 = (. + 0x3100000);
73  }
74
75/* 32 bit relocations:
76   Absolute address (R_CRX_ABS32, R_CRX_IMM32) : 0x11014000 + 0x11000000 + 6 = 0x22014006
77   Relative address (R_CRX_REL32) : 0x11000000 + 6 = 0x11000006
78*/
79  .text_32 0x11014000 :
80  {
81	*(.text_32)
82	foo32 = (. + 0x11000000);
83  }
84}
85