1 2 3 4 5 6 7 8 9 10 11
12
13 14 15 16
17
18 /*!
19 * ======== C64P_big_endian ========
20 * TI C64P big endian target
21 */
22 metaonly module C64P_big_endian inherits ITarget {
23 override readonly config string name = "C64P_big_endian";
24 override readonly config string suffix = "e64Pe";
25 override readonly config string isa = "64P";
26 override readonly config xdc.bld.ITarget.Model model = {
27 endian: "big",
28 shortEnums: true
29 };
30 override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
31
32 override readonly config string rts = "ti.targets.rts6000";
33 override config string platform = "ti.platforms.sim6xxx:TMS320CDM420";
34
35 override readonly config ti.targets.ITarget.Command ar = {
36 cmd: "ar6x",
37 opts: "rq"
38 };
39
40 override readonly config ti.targets.ITarget.Command cc = {
41 cmd: "cl6x -c",
42 opts: "-me -mv64p --abi=elfabi"
43 };
44
45 override readonly config ti.targets.ITarget.Command vers = {
46 cmd: "cl6x",
47 opts: "-version"
48 };
49
50 override readonly config ti.targets.ITarget.Command asm = {
51 cmd: "cl6x -c",
52 opts: "-me -mv64p --abi=elfabi"
53 };
54
55 override readonly config ti.targets.ITarget.Command lnk = {
56 cmd: "lnk6x",
57 opts: "--abi=elfabi"
58 };
59
60 /*!
61 * ======== asmOpts ========
62 * User configurable assembler options.
63 *
64 * Defaults:
65 * @p(dlist)
66 * -`-qq`
67 * super quiet mode
68 */
69 override config ti.targets.ITarget.Options asmOpts = {
70 prefix: "-qq",
71 suffix: ""
72 };
73
74 /*!
75 * ======== ccOpts ========
76 * User configurable compiler options.
77 *
78 * Defaults:
79 * @p(dlist)
80 * -`-qq`
81 * super quiet mode
82 * -`-pdsw225`
83 * generate a warning for implicitly declared functions; i.e.,
84 * functions without prototypes
85 */
86 override config ti.targets.ITarget.Options ccOpts = {
87 prefix: "-qq -pdsw225",
88 suffix: ""
89 };
90
91 /*!
92 * ======== ccConfigOpts ========
93 * User configurable compiler options for the generated config C file.
94 *
95 * -mo places all functions into subsections
96 * --no_compress helps with compile time with no real difference in
97 * code size since the generated config.c is mostly data and small
98 * function stubs
99 */
100 override config ti.targets.ITarget.Options ccConfigOpts = {
101 prefix: "$(ccOpts.prefix) -mo --no_compress",
102 suffix: "$(ccOpts.suffix)"
103 };
104
105 /*!
106 * ======== lnkOpts ========
107 * User configurable linker options.
108 *
109 * Defaults:
110 * @p(dlist)
111 * -`-w`
112 * Display linker warnings
113 * -`-q`
114 * Quite run
115 * -`-u`
116 * Place unresolved external symbol into symbol table
117 * -`-c`
118 * ROM autoinitialization model
119 * -`-m`
120 * create a map file
121 * -`-l`
122 * archive library file as linker input
123 */
124 override config ti.targets.ITarget.Options lnkOpts = {
125 prefix: "-w -q -u _c_int00",
126 suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64pluse_elf.lib"
127 };
128
129 override config string includeOpts = "-I$(rootDir)/include";
130
131 override readonly config Int bitsPerChar = C64P.bitsPerChar;
132 }
133 134 135
136