2 Definitions for what a port must provide.
3 All ports are referenced in SDCCmain.c.
8 /* Processor specific names */
10 /** Target name used for -m */
12 /** Target name string, used for --help */
13 const char *target_name;
15 /** Command to run (eg as-z80) */
16 const char *exec_name;
17 /** Arguments for debug mode */
18 const char *debug_opts;
19 /** Arguments for normal assembly mode */
20 const char *plain_opts;
21 /** TRUE if the output file name should be pre-pended to the args */
22 bool requires_output_name;
25 /** Command to run (eg link-z80) */
26 const char *exec_name;
28 /** Basic type sizes */
41 /** Names for all the memory regions */
43 const char *xstack_name;
44 const char *istack_name;
45 const char *code_name;
46 const char *data_name;
47 const char *idata_name;
48 const char *xdata_name;
51 const char *static_name;
52 const char *overlay_name;
55 /** -1 for grows down (z80), +1 for grows up (mcs51) */
57 /** Extra overhead when calling between banks */
59 /** Extra overhead when the function is an ISR */
61 /** Standard overhead for a function call */
63 /** Initial SP offset */
67 /** One more than the smallest mul/div operation the processor can do nativley
68 Eg if the processor has an 8 bit mul, nativebelow is 2 */
71 /** Parses one option + its arguments */
72 bool (*parseOption)(int *pargc, char **argv);
73 /** Called after all the options have been parsed. */
74 void (*finaliseOptions)(void);
75 /** Called after the port has been selected but before any
76 options are parsed. */
77 void (*setDefaultOptions)(void);
78 /** Does the dirty work. */
79 void (*assignRegisters)(eBBlock **, int);
80 /** Returns the register name of a symbol.
81 Used so that 'regs' can be an incomplete type. */
82 const char *(*getRegName)(struct regs *reg);