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 */
13 /** Target name string, used for --help */
14 const char *target_name;
16 /* assembler related information */
18 /** Command to run (eg as-z80) */
19 const char *exec_name;
20 /** Arguments for debug mode */
21 const char *debug_opts;
22 /** Arguments for normal assembly mode */
23 const char *plain_opts;
24 /** TRUE if the output file name should be pre-pended to the args */
25 bool requires_output_name;
28 /* linker related info */
30 /** Command to run (eg link-z80) */
31 const char *exec_name;
34 /** Basic type sizes */
48 /** Names for all the memory regions */
50 const char *xstack_name;
51 const char *istack_name;
52 const char *code_name;
53 const char *data_name;
54 const char *idata_name;
55 const char *xdata_name;
58 const char *static_name;
59 const char *overlay_name;
62 /* stack related information */
64 /** -1 for grows down (z80), +1 for grows up (mcs51) */
66 /** Extra overhead when calling between banks */
68 /** Extra overhead when the function is an ISR */
70 /** Standard overhead for a function call */
72 /** Re-enterant space */
77 /** One more than the smallest
78 mul/div operation the processor can do nativley
79 Eg if the processor has an 8 bit mul, nativebelow is 2 */
83 /** Parses one option + its arguments */
84 bool (*parseOption)(int *pargc, char **argv);
85 /** Called after all the options have been parsed. */
86 void (*finaliseOptions)(void);
87 /** Called after the port has been selected but before any
88 options are parsed. */
89 void (*setDefaultOptions)(void);
90 /** Does the dirty work. */
91 void (*assignRegisters)(eBBlock **, int);
93 /** Returns the register name of a symbol.
94 Used so that 'regs' can be an incomplete type. */
95 const char *(*getRegName)(struct regs *reg);
97 /* list of keywords that are used by this
98 target (used by lexer) */